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()`
Ensure tmp/cache exists
~ Remove unnecessary lines from README
(i18n/translations.js already include i18n.js)
[ci skip]
Merge pull request #202 from haosu/add-default-scope

Add `default` parameter for missing scopes
Merge pull request #204 from SchoolKeep/ak-ensure-tmp-cache-exists

Ensure tmp/cache exists
Support multiple conditions together with a JS file per locale.
fix typo in readme
~ Add some headings and warning about what to do with/without asset pipeline
[ci skip]
Merge pull request #210 from williamcodes/fix_typo

fix typo in readme
Fix typo
Merge pull request #214 from flash-gordon/patch-1

Fix typo
Do not include locales which are not present in I18n.available_locales. This is important when using gems that include translations for locales you don't want.
~ Add back missing doc about config file
[ci skip]
Merge pull request #207 from codeholic/fix_segments_per_locale_for_v3

Support multiple conditions together with a JS file per locale.
* Change development dependencies `rspec` (locked at `3.*`)
! Fix spec
* Test against MRI 2.1.2 on Travis
Update README and CHANGELOG
Merge remote-tracking branch 'remotes/origin/master' into avail-locales
Fix conflicted spec from recent merge
Fix using multi-star scope with top-level translation key

Given the following locales.yml

:en
  foo: 'Foo'

and the following scope: "*.*.formats"

this error is raised:

Failures:

  1) I18n::JS filters filters translations using multi-star scope
     Failure/Error: result = I18n::JS.scoped_translations("*.*.formats")
     NoMethodError:
       undefined method `has_key?' for "Foo":String
     # ./lib/i18n/js.rb:134:in `filter'
     # ./lib/i18n/js.rb:130:in `block in filter'
     # ./lib/i18n/js.rb:127:in `each'
     # ./lib/i18n/js.rb:127:in
     # `filter'
     # ./lib/i18n/js.rb:130:in
     # `block in filter'
     # ./lib/i18n/js.rb:127:in `each'
     # ./lib/i18n/js.rb:127:in
     # `filter'
     # ./lib/i18n/js.rb:113:in `block in scoped_translations'
     # ./lib/i18n/js.rb:112:in
     # `each'
     # ./lib/i18n/js.rb:112:in `scoped_translations'
     # ./spec/i18n_js_spec.rb:82:in
     # `block (3 levels) in <top (required)>''`

This commit will fix it by type-checking.