Location refactor.

This refactors `Location` to be a combination of a new `Namespace`
class and a key.

```java
Namespace ns = new Namespace(bucketType, BucketName);
Location loc = new Location(ns, key);
```

There is no longer such a thing as a `Location` without a key. operations/commands that don't require one now just take a `Namespace`. This also makes `Location` an immutable object (as is `Namespace`). 

Overall this provides a better abstraction of how data is stored in
Riak.

resolves #435