Begin implementation of "custom" editable object classes.

* Separate 'class' and 'field' entities. Previous Fields were a combination of both a Field and a Class.
* Turn Component, Version, Milestone, Keywords, OS, Platform, Status and all custom select field value classes into generic classes.
  Remove most of their custom DB interaction code.
* Remove separate Milestone and Version CRUD user interfaces, edit them using generic UI.
* Allow to view history of generic objects.

TODO:
* Editor for generic classes and their fields.
* Deal with possible form field name collisions.
* Support search on generic objects.
* Add "display" pages for generic objects and decide how they should
  relate to object edit pages (for example, it's the same page for bugs).
* Add object-level and field-level permission system.
* Support generic "autocompleted editbox" view of select fields,
  without the need to dump all values into client JS.