[WIP] Encoder

We want to only have one place to serialize / deserialize envelopes but still allow flexibility for the Messages.

This also comes with a new protocol.

* Class: is the classname of the message, this is no longer normalized with `:` but just have the complete php class. If it is needed to change this a custom Encoder can be used that wraps the normal one.
* Message: is a hash of values that is used to recreate the message classes. If the message is a DefaultMessage it will also contain the name.
* Timestamp: this is the timestamp for when the envelope was enqueued.