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.
=begin ... =end is Ruby's block comment syntax. I didn't realize it was uncommon/[bad style](https://github.com/bbatsov/ruby-style-guide#source-code-layout), i'll just remove the test entirely since it was only used in developing the migration.