CDAP-534 Support Metrics querying by runId

We use the runId of the program for storing metrics along with context and metric name and use runId for querying them as well. We support runId for user metrics and we will make change to support runId with system metrics after the associated UI change.

https://issues.cask.co/browse/CDAP-534
Would be nice to have a class that uniquely identifies a flowlet, procedure, etc. Especially if we add the capability to run multiple sets of instances of a program (e.g. run with WordCountFlow reading from different stream and writing to different dataset).