feat(app): support global configuration

`require('gcloud')` will now return a function. When invoking, pass in
an object to persist properties to future sub-module instantiations. You
may also continue to use the static methods on it when global
configuration isn't needed.

BREAKING CHANGE: using new to instantiate a sub-module is no longer
supported. To match, constructors previously used with `new` have been
renamed to all lowercase characters.

Before:
var gcloud = require('gcloud');
var dataset = new gcloud.datastore.Dataset(/*...*/);

After:
var gcloud = require('gcloud');
var dataset = gcloud.datastore.dataset(/*...*/);

Fixes #172
Fixes #191