enable CORS

Added the rack-cors gem as middleware. Solves the cross-origin problems
we were seeing when the browser was making pre-flight requests before
PUT/POST/DELETE.
Merge pull request #35 from yobennett/cors

enable CORS
update thin config
Merge pull request #37 from yobennett/update-thin-config-for-viper

update thin config
require hashie
Merge pull request #38 from yobennett/event-pack-post

require hashie
return empty hash, by default
Merge pull request #39 from yobennett/fix/sort-option-mapper-nil-return

return empty hash, by default
game status

Replaced MatchupGame scopes with Workflow status. This allows us to
have corresponding handlers as the game moves from before its played
until a winner is decided.
handlers to start, finish, and reset game

Added skeleton handlers for starting, finishing, and resetting a `MatchupGame`.
We rely on the API user to update a `MatchupGame` by setting specific properties,
which in turn trigger a status update via `Workflow`. This way the API user can
be specific about the values entered into specific fields but leaves the
transitions between states up to the API.

To trigger a `MatchupGame`'s transition from `ready` to `underway`, set the
value for `starts_at`.

To trigger a `MatchupGame`'s transition from `underway` to `finished`, set the
value for `ends_at` and set the `winner`'s `id`.
require handlers
Merge pull request #40 from yobennett/game-status-flow

Game status transitions (from ready to underway to finished)
remove game status validation; closes #42 #43
Merge pull request #46 from yobennett/game-finish

remove legacy game status validation
added team builder
POST /teams; closes #44
DELETE /teams; closes #47
PUT /teams; closes #48
Merge pull request #49 from yobennett/team-crud

Team CRUD
game status not publicly accessible