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. 
Can consider doing the following instead:

```
private static final Gson GSON = new Gson();
private static final String METADATA_VALID = GSON.toJson(ImmutableMap.of("name", "test", "displayName", "displayTest", "description", "test description"));
...
```