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.