Started work on using generic field lists for database objects

In order to make it so that we can update individual fields without
modifying database fields unnecessarily, and have a generic way to do
it that minimizes hard-coding and code duplication.
Debug spam
More updates to improving database updates

* Had to ditch the custom ObjectField type for just plain string
  in order to make database deserialization succeed
* Moved the character type into its own file to avoid clutter, probably will do
  so with the rest of the types as well
* Renamed Online to IsOnline for naming consistency