Feature/cdap 778 namespaced services

Changes:
1. Services exist within namespaces
2. Service discovery is also namespaced

Things to watch out for:
* The ``ServiceHttpHandler.getRunnableCount()`` is now merged with ``ProgramLifecycleHttpHandler.getRunnableCount()``. The only extra logic in the former one was to go to the store if the program is not found running in YARN and get its instance count. However, this method is being used to update provisioned/running instances. Hence, I think the method in ``ProgramLifecycleHttpHandler`` should be preferred. To get requested count, the ``ServiceHttpHandler`` already goes to the store, so its unnecessary to do that again for getting ``provisioned`` instances.
* ``ServiceHttpHandler.getServiceSpecification()`` is now merged with ``ProgramLifecycleHttpHandler.getProgramSpecification()``, which was refactored.
There shouldn't be a null case since it should exhausted all `ProgramType`. Exception should be thrown.