Only receive Vesicles from Myelin which were transmitted since the last request

Schema changes:
* Added Persona.myelin_offset (DateTime): To compute offsets for using
Myelin API
* Added DBVesicle.created (DateTime): To compute offsets for using
Myelin API
* Added DBVesicle.author_id (String): For validation
* Added DBVesicle.source_id (String): Either origin souma.id or "myelin"

Vesicle.Vesicle
* Read: Remove tzinfo from created field (to allow comparison to
DateTime without tzinfo)
* Read: Parse created field as ISO 8601 datetime
* save: Add optional json argument to not change JSON encoding
specifics when passing on a Vesicle

Synapse.Synapse:
* handle_change_notification: Only compare existing object's creator.id
with change_notification.author_id if a local object actually exists
* handle_change_notification: If a non-local object is deleted, create
a dummy object with state=-2 (deleted)
* handle_vesicle: Auto-save received Vesicles
* handle_vesicle: Return loaded Vesicle object

Synapse.electrical.Electrical:
* myelin_receive: Argument recipient (Persona) changed to recipient_id
(String) to avoid object sharing in gevent
* myelin_receive: Pass offset parameter in requests to Myelin's receive
endpoint