The type of an object is preserved by persisting the type name as __type__

This fixes my issue #165.
It persists the type of synced objects by writing the type (= constructor function name of the prototype) to the __type__ property of the object in Firebase.
It also restores the prototype of the object when the object get synced from Firebase.

Maybe a option can be added to make it optional. I'm looking forward to get your feedback.