Add methods to explicitly set authentication on API requests

This PR fixes and updates the basic authentication handling for API requests

* fixes the broken basic auth behavior for methods other than GET
* sets authentication on GET requests when appropriate, such as for `revisions` endpoints
* lets users opt-in to authentication on any request with an `.auth()` method on `WPRequest`

Methods that explicitly set authentication:

* The entirety of `UsersRequest`
* `.revisions` in `PostsRequest` and `PagesRequest`
* `.edit()` and `.context( 'edit' )` within `CollectionRequest`

This can be extended to other methods where needed.

To set authentication on a request, chain `.auth()` (or, to set the username & password to be used for the request, `.auth( 'usernamestring', 'passwordstring' )` into the request chain.

To set authentication for *all* requests, pass `auth: true` into the `options` argument used to instantiate a `WP` instance:
```javascript
var wpWithRequiredAuthentication = new WP({
  endpoint: 'http://endpoing.com/wp-json',
  // auth: true forces authentication
  auth: true,
  // auth still requires username & password to be set
  username: 'someuser',
  password: 'somepass'
});
```