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
   - Use function level strict directive so sources can be concatenated
    and strict behaviour maintained.
   - Wrap it all up, put a bow on it.
- Update tests.