datastore: scope Key creation to include NS. fixes #116.

RE: #116

I actually have 2 different implementations for this, but this was the one I thought was the most logical.

When a user creates a dataset, they can provide a namespace. Then, anytime they need a key, instead of `datastore.key()`, they call `datasetInstance.key()` - the key will be created with the namespace already bound to the Key.

The other implementation removed any association of a namespace from a Key object, which [felt wrong](https://developers.google.com/datastore/docs/apis/v1beta2/key).

PTAL & LMKWYT.
`this.namespace = namespace || null`. Let's make sure that we always cast namespace to null if none provided. It seems like we use null, '' and undefined through the repo.