Chain interceptors to support builder style configuration

Before:

```javascipt
var client = pathPrefix(errorCode(mime(), { code: 500 }), { prefix: 'http://example.com' });
```

-- or --

```javascript
var client = mime();
client = errorCode(client, { code: 500 });
client = pathPrefix(client, { prefix: 'http://example.com' });
```

Now:

```javascript
var client = rest.chain(mime)
	.chain(errorCode, { code: 500 })
	.chain(pathPrefix, { prefix: 'http://example.com' });
```

Each of these three example configurations are semantically equivalent.
The new style is more clear than the first example, as the config is
closer to the type of the interceptor. It is also more concise than the
second version, while also eliminating the mutation of the 'client' var.

Each of these three styles will still work, this change does not affect
backwards compatibility.

Thanks to Kris De Volder for the sugestion.
Convert code example to Common JS style modules

Node and UMD users will find the example much more approachable. AMD
purists will figure it out.
Default request interceptor

An interceptor that is able to provide default values for any part of the
standard request api:
- method
- path
- params
- headers
- entity

If a value is not defined in the request, this interceptor will provide the
configured default value. For headers and params, the values are mixed
together. This interceptor will not overwrite a value specfied by a request.
typoes
Cross browser testing with Sauce Labs

Sauce Labs now provides free test time for open source projects, yay!

Test results can be viewed at:
https://saucelabs.com/u/s2js-probes

This commit provides a primative test runner that utilizes Travis CI to
drive Buster tests on Sauce for major browsers (and then some). While a
bit hacky in places, it's stable enough to start using. Converting into a
configuratble/resuable Grunt task would be ideal.
refine
ff 3.6
disable test for sauce