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. 
It's kind of messy right now, but if we want to use the class in cdap-client or cdap-cli, we usually just move it to cdap-proto. I think ideally we have cdap-api have no dependencies, and then move everything from cdap-proto into cdap-api.