Raven-js likes to share, let's make it more introverted.

  - All functions (e.g. 'private' ones, like `each`) moved into the
    Raven global to prevent them polluting the window object. Misc
    variables too (`cachedAuth` etc).
  - Added `hitch` to apply scope to callbacks, primarily
    so that `each` can recieve callbacks with scope set. `each`
    now applies `this` instead of `null`.
  - Moved global* variables into Raven object properties - since
    Raven is global anyway. Included legacy support for loading
    but possible issues if you're running multiple Raven versions
    and changing global settings after it's loaded.
  - Refactored for cleanliness:
     - Remove one line control structures (inconsistently applied
       and linters don't like them)
     - Declare functions nicely (`wrapped`, `success`, etc) so the
       test runner doesn't complain about strict violations
     - Wrap it all up, put a bow on it.
  - Update tests.