improve testability

The `Twitter` constructor optionally accepts a `options.oauth` key with a pre-constructed `OAuth` instance. The new `OAuth` constructor which extends `oauth.OAuth` optionally takes `http` and `https` implementations.
add Twitter#createChild()
add MockTwitter, change exports