Added a dirty hack to make deserializing cleaner

Force the map of object ids to be a []bson.ObjectId instead of []interface{}
First step towards giving the model/database system an overhaul

* Only made it so the Character type works in the new way, as a proof of
concept and to see how well things work out.

* Made it so we pass around character pointers instead of copying them
everywhere in order to both save memory and ensure we remain in a consistent state

* Started working towards the database package keeping its own session object so
that we don't have to pass it around everywhere

* Added beginnings of making database objects entirely thread-safe via use of channels
Added a stub for a function that would be nice to have
Some thread safety for updating object fields
Moved Room into its own file