Refactoring

Changes:
- Removed extraneous 'self.'
- Replaced the 1D array of tile objects with a 'game board' struct emulating a 2D array
- Moved model-related enums and structs into a separate file
Cleaning up gameboard view

Changes:
- Removed extraneous 'self.'
- Added bounds checking
Didn't check, but should work
Merge pull request #4 from alco/patch-1

Didn't check, but should work
Adding documentation, fixes

Changes:
- Fixed (currently unused) reset methods
- Added documentation to better explain the classes, structs, enums, and methods
Adding notes explaining why delegates aren't marked as weak/unowned in current implementation
small optimization

you can use 2 dots in for in loop to except dimension value
Merge pull request #5 from buddax2/master

small optimization
Updating readme
Updating readme (formatting)