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 am not sure. The Account is out current concept of namespace. Now we rename it to Namespace. If you create a new type of objects, add that to every Id, then remove Account from every Id, you are gonna do a lot of redundant work. I would like to know where the Account is actually used in a way that is different from a namespace.