Allow to create Difficulty instance from integer value.
Level.new does not accept String value.
Add models and migrations.
Validates models.
Accepts Symbol as Difficulty#initialize's parameter.

* More specs.
Integer value of 'Difficulty' starts from 1.
Freeze Difficulty::AVAILABLE and its elements.