The API was never made an object since I couldn't find a way or working around the Flask decorators.
By using dispatch we can get around the issues in #14 and will be able to create better mocks for the API
Appointment serialization used to be part of the cryptographer (signature_format) but it makes more sense to be an appointment method. Therefore cli also need Appointment
Also fixes comments based on reviews