Moved camera into its own separate struct so that we can avoid the
global constructor (makes Clang spit out a warning, related to the
Static Initialization Order Fiasco. Also, initialized some things to
NULL for safety. Finally, I started on the serialization (not quite done
yet).