remove unused field from SetFieldCommand
Add Brush subclasses: AddEntityBrush, SetFieldBrush
 - move from MultiBrush to Brush methods: StartAt, MoveTo, FinishAt
 - simplify Editor::ShouldSnapToGrid
 - simplify Editor::ReleaseAtCoords
 - simplify Editor::MoveToCoords
 - simplify Editor::ActionAtCoords
 - add Editor::GetEntityFactory
 - refactor AddEntityCommand so that it creates an entity in Execute()
Add SetPlayerCommand and SetPlayerBrush
Fix MultiBrush and rename it to AreaField, rename PlatformEditorCommand ~> AreaFieldCommand
Add EraserBrush and some cleanup
Merge branch 'replace-ifs-with-subclasses-of-brush'

* replace-ifs-with-subclasses-of-brush:
  Add EraserBrush and some cleanup
  Fix MultiBrush and rename it to AreaField, rename PlatformEditorCommand ~> AreaFieldCommand
  Add SetPlayerCommand and SetPlayerBrush
  Add Brush subclasses: AddEntityBrush, SetFieldBrush  - move from MultiBrush to Brush methods: StartAt, MoveTo, FinishAt  - simplify Editor::ShouldSnapToGrid  - simplify Editor::ReleaseAtCoords  - simplify Editor::MoveToCoords  - simplify Editor::ActionAtCoords  - add Editor::GetEntityFactory  - refactor AddEntityCommand so that it creates an entity in Execute()