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.
"an object was supposed to be here, but one wasn't provided."

I don't think this is the case here. Query is being called with (null, kinds). I explicitly provide an empty value which is null.

OTOH, If a variable has not been inited, you want to set a default for that as soon as possible. Similar to the cases where we set `null` for configuration objects keys that are not present. `null` explicitly means it's good to have this value as `null`.