CDAP-772 Feature/cdap 772 namespace service

Namespaces APIs to manage namespaces metadata.
Question: 
Should we create and use ``Id.Namespace`` instead of using namespace name as ``Key``?

- [x] Namespace service to create, list, delete namespaces
- [x] Unit testing, standalone testing
- [ ] Testing on a distributed cluster. 
I have a few issues with the current method:

1. When passed a non-null name, `listNamespace` is a strange name because it's actually getting the response code from querying a single namespace, rather than listing a single namespace which the name would imply. 
2. When passed a null name, the name `listNamespace` doesn't make sense - should be `listAllNamespaces` in this case.
3. `listNamespace` isn't actually listing a namespace.

However, this is test code, so not actually a big deal.