Expose request API.

In theory, fixes #21.

Allows module authors to make custom requests by using the 'public' API of the request handler.

We should WAIT to merge this until after the functional tests get in, so some functional tests can be added here. Also this needs docs.

```js
/*
  Issues a DELETE request with data (if supplied) to the server
*/
request.delete = function (options, data, callback) 

/*
  Issues a GET request with data (if supplied) to the server
*/
request.get = function (options, data, callback) 

/*
  Issues a HEAD request with data (if supplied) to the server
*/
request.head = function (options, data, callback) 

/*
  Issues a POST request with data (if supplied) to the server
*/
request.post = function (options, data, callback) 

/*
  Issues a PUT request with data (if supplied) to the server
*/
request.put = function (options, data, callback)
```