Prevent modification of the global defaultOptions
Prevent modification of the global defaultOptions

The `extend()` function mutates the object supplied by the first parameter, and
then returns it. This means that all instances of `Client` first add their own
options to the global `defaultOptions` variable, before then using it.

Therefore all `Client` instances share the same options. This commit ensures
that each instance of `Client` receives its own version of `options`, by first
copying `defaultOptions` and then the supplied `options`.
ngonzalvez/rest-orm,ngonzalvez/rest-facade