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.
oh, and the system environment being modified by Ruby process does not affect the parent Unix shell, so once the command finishes executing the shell's environment will remain unaffected for future tasks.