Add `defaults` option to `I18n.translations`

To mimic the Rails I18n implementation, a list of default scopes and
messages can be provided to `.translate` as a means for specifying
fallbacks. Users can provide either a fallback scope, or a fallback
translation.

If the default scope passed in as a parameter is not found, then
`.translate` will iterate through the scopes found in `defaults` until
one matches or a simple translation is found.

The Rails implementation of `default` users the type of each entry to
discern whether or not it is a scope or message. Since there is no
symbol type in Javascript, this implementation requires hash entries in
`defaults` where the key is the desired translation method.

For example,
  * `{scope: "some.scope"}` for a scope, and
  * `{message: "some message"}` for a simple translation.

This commit also includes a shim for `Array.prototype.some()`