pubsub: refactor (fixes #98).

Here's the PubSub API refactor (#98)! The [readme updates](https://github.com/stephenplusplus/gcloud-node/blob/pubsub/README.md#google-cloud-pubsub) + tests ([regression](https://github.com/stephenplusplus/gcloud-node/blob/pubsub/regression/pubsub.js) & [unit](https://github.com/stephenplusplus/gcloud-node/tree/pubsub/test/pubsub)) will be good places to see it in action. Let me know if you see anything you think can be improved!

Note: this could likely still use a few more tests, and definitely needs a sweep for doc block accuracy. I'll get to these soon.
Don't delete subscriptions, that's not the intended behaviour. There may be multiple programs running that is using this subscription you're using. Deletion will break them all.

I think we don't need to do magic during subscription. Let's have create methods.

~~~ js
pubsub.createTopic(opts, callback)
pubsub.createSubscription(opts, callback)
~~~

and constructor that doesn't involve in GET or POSTs. No need for ready event, LazyCreate, much of the complexity we deal here.

~~~ js
pubsub.topic('name');
pubsub.subscribe({ topic: 'topic-name', name: 'subs-name' }); // doesn't do any GETs, it will fail during its first pull request, if it doesn't exist
~~~