Deserialization of query results through the ExploreClient better supports the different types
Addressed PR comments
Query Metrics run-id as a part of path, instead of query parameters
Merge branch 'develop' of github.com:caskdata/cdap into metrics_runId_API_change
refactored with new API review changes and removed some code duplication
checkstyle fixes
fixed an endpoint bug, component-type (mappers/reducers) should come after runs in path, and improved the test case to cover this
Spark Integration: MapReduceContext extends ServiceDiscoverer
Merge pull request #608 from caskdata/feature/metrics_runId_API_change

CDAP-534 metrics run-id API change
Merge pull request #638 from caskdata/feature/spark-services

Spark Integration: MapReduceContext extends ServiceDiscoverer
(CDAP-656) Set Context ClassLoader to program ClassLoader for user Service.
Merge pull request #580 from caskdata/feature/explore-results-deserialization

Better deserialization of query results through the ExploreClient
Spark Integration: SparkPageRank now uses Service
Merge pull request #622 from caskdata/feature/sparkpr-service

Spark Integration: SparkPageRank now uses Service
Merge pull request #640 from caskdata/feature/service-context-classloader

(CDAP-656) Set Context ClassLoader to program ClassLoader for user Service
Merge branch 'develop' of github.com:caskdata/cdap into feature/CDAP-521-LocalServices

Conflicts:
	cdap-unit-test/src/test/java/co/cask/cdap/test/app/AppWithServices.java