refactor level columns into properties hash

High-level features of this branch:
- Data migration moving level.* data into level.properties.* serialized JSON fields, and modifying the DB schema to remove the columns.
- SerializedProperties mixin added to Level that overrides setter/getter methods of the properties fields, so that the serialized properties fields appear exactly like database columns to most of the Rails ActiveRecord functionality.
- Refactoring the level editor form using view partials to clean it up a bit.
currently specific to levelbuilder, but there were two reasons for factoring it out: 1. complex javascript in HAML is ugly; 2. we might want similar ajax-style submission with error reporting elsewhere in the future, so it would take minimal refactoring to reuse this part.