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. 
@jwang47 @anew @chtyim 
I saw an ``Id`` class in cdap-proto that contains ids for application, program, etc. Is this a convention? Do you think I should create an ``Id.Namespace`` as opposed to just using the name?