Feature/cdap 869 namespaced program lifecycle

Adds v3 APIs with namespaces for the following program actions -
1. Runnable Start/Debug/Stop/Status
2. Runnable runtimeargs get/set
3. Runnable history
4. Batch status
5. Batch instances

This PR looks large, but will be half its size (4 files - ``AppFabricHttpHandler``, ``AppFabricServiceRuntimeModule``, ``ProgramLifecycleHttpHandler``, ``ProgramLifecycleHttpHandlerTest``) once #818 is merged.
Have refactored it to an extent - where I've moved all the logic to populate requested and provisioned instances for a runnable to a separate method. This method assumes that the ``ProgramType`` being passed to it can in fact have instances.

I explored the possibility of splitting this further, but its unlikely because the logic is too involved - get ``runnableid`` in a different way, check for existence in a different way and get instances in a different way for each ``runnable``. Also, whenever any condition does not hold true, this method needs to stop processing the current ``BatchEndpointInstances`` object and move to the next one. Makes it difficult if you split it more.