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.
right now import_custom_levels is not hooked up to any other tasks, so there's no risk of bleeding over. it's meant to be invoked manually - this is just a helper for when we need to force update levels, instead of `FORCE_CUSTOM_LEVELS=1 rake seed:custom_levels` we can just run `rake seed:import_custom_levels`