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 would say use PUT, but don't give CONFLICT. However, our `StreamHandler` uses PUT to create streams, but doesn't give CONFLICT when the stream already exists, yet our `DatasetInstanceHandler` uses PUT to create datasets, but does give CONFLICT when a dataset of the same name already exists. So we're inconsistent there.

Anyway, I'd say use PUT, but don't give CONFLICT.