Allow overriding the default client

The default client is used internally when no custom client is
configured. There are times, when it's useful to change the default
client; such as when the automatic environment sniffing is wrong, or you
want to add support for a new environment that rest.js doesn't yet
understand. In these cases, you can set, get and reset the default client
using the `rest.setDefaultClient(client)`, `rest.getDefaultClient()` and
`rest.resetDefaultClient()` methods respectively.

While it may be tempting to change the default client for application
level concerns, changing the default will impact all consumers.  In just
about every case, using an Interceptor is preferred.