add .ruby-version for rbenv
removed specified version numbers
use params directly to build team
update team directly with params
use messages directly in error response
remove deprecated show relation
simplified POST /matchups to be more conventional

Formerly, we were using a custom PORO to build a matchup. Here we
nix that code in favor of Mongoid's basic `new` method. However,
we use Hashie's `Trash` Hash extension to sanitize input.
Replace matchup builder and updater with vanilla Mongoid persistence

We are replacing custom builders and updaters in favor of Mongoid's
standard persistence functions. This gives us less code to maintain
and makes it easier for new engineers to understand the API.

The biggest challenge in this change is how to deal with nested `Team`
data. Incoming user input must be translated from an array of `Hash`
objects to an array of `Team` id's. This allows for proper validation.
Otherwise, if you set the `teams` relation directly with an
`update_attributes` call then validations on the `Matchup` are not
called until after invalid `Team` data is set. For example,

Given a valid `Matchup` with two teams in a best of 5,

```
matchup.update_attributes(:teams => [], :best_of => 3)
```

returns false due to validation checking for at least one team. The
`best_of` value is not set. However, the `teams` attribute will be
set to an *empty array* because it is a autosaving referencing relation.

On the other hand,

```
matchup.update_attributes(:team_ids => [], :best_of => 3)
```

returns false and does not set the `teams` relation to an empty array
nor does it set the `best_of` value either, which is the desired result.

The lesson is that there are some quirks that come with the behavior of
Mongoid's persistence methods when it comes to reference relations.
return 404 for matchups not found for PUT and DELETE

Expose less information to the public when a `Matchup` for a given
`id` is not found. Mongoid will raise an exception by default when
a document is not found using the `find` method.

We are choosing to keep the default settings for `Mongoid.raise_not_found_error`
to `true`. In response, we use the `where` query method specifying
`id`, which returns `nil` if there are no matching documents. Otherwise,
we return a `404`.
404 when not found
404 when not found
event POST with attributes translator (groups, matchup)
build games for matchup before create callback
404 for DELETE /events not found
updated PUT /events to use attributes translator

Made changes to the PUT /events endpoint to mirror recent changes to the
POST/PUT /matchups endpoints. Incoming `Event` data is translated with
support for nested `Group` and `Matchup` data.
404 for PUT and DELETE /teams not found
remove deprecated custom builders and updaters
deleted deprecated specs; remove EventPack
404 for GET /games not found
PUT /games with attributes translator and default Mongoid persistence

`number` is no longer a protected attribute for the `MatchupGame` model
because it was incompatible with the mass assigned of other accessible
attributes, which is new for Mongoid 3.1.2.