Add more auth options, including digest support

Add the capability to specify auth username and password in request
options or via Request.prototype.auth, as well as whether they should be
sent immediately as Basic authorization (set this to false when using
digest authentication).