refactor

#### static methods
   - `.endpoint(url)` - sets the endpoint
   - `.retries(n)` - how many request attempts ? (using superagent-retry).

#### methods
  - `.track()` - tick
  - `.page()` - tick
  - `.track()` - tick
  - `.identify()` - tick
  - `.exists(setting, settings)` - return validation error if setting is missing
  - `.redis(client)` - set / get redis
  - `.logger(logger)` - set / get logger.
  - `.request(method, url)` - creates a superagent request with method and optional url < all integrations __must__ use this method to create a request.
  - `.enabled(facade, settings)` - checks if the integration is enabled and the channel is `server`. integrations can override this method.
  - `.debug(ms)` - just like the client side `.debug()`.

#### events
Each integration inherits from event emitter.
  - `request(req)` - emitted before request
  - `response(res)` - emitted on response

/cc @calvinfo @ianstormtaylor @ivolo