Publish new Perigee API.

Expose request() publicly as Request().  This new function should now be
the preferred way to issue a request.  The "standard four" still exist,
but will not be expanded any further.

Adds a **Response field to the Options structure, so that Response
objects can be returned to clients.

Squashed commit of the following:

commit 9b458286e0cae1c84dfcc59beab8a5f93a255ef4
Merge: 3bb43a4 8acef07
Author: Samuel A. Falvo II <sam.falvo@rackspace.com>
Date:   Thu Aug 22 13:05:41 2013 -0700

    Merge branch 'master' into publish-expanded-api

    Conflicts:
    	api.go
    	api_test.go

commit 3bb43a48d43f674c9b08cb1292006058165f1b05
Author: Samuel A. Falvo II <sam.falvo@rackspace.com>
Date:   Thu Aug 22 13:01:12 2013 -0700

    wtf yo?
Merge pull request #11 from racker/expand-api-2

Publish new Perigee API.
Don't segfault if Do returns nil, err
Merge pull request #12 from justinsb/segfault_on_error

Don't segfault if Do returns nil, err