Juwang-logscope-logparser -code instruments

To instrument reef code and measure the performance, this PR adds LogScope and LogScopeFactory classes.  User can call LogScope with try-with-resources  to measure the time elapsed in millis. 

LogScopeFactory  supplies predefined methods, which return LogScope objects for the critical points/stages in Reef such as Driver start, Evaluator submit, etc .  User can still create LogScope object directly for any piece of the code range. 

This PR instruments Reef code by inserting LogScopes at major phases. A LogParser is created to parse the log data to find run time performance. 

Two http requests are supported. One is for stages the other is for duration. The result can be seen by simple http request like:
http://localhost:8080/reef/v1/duration
http://localhost:8080/reef/v1/stages
I am not sure if we should use Level.Info here, that is too verbose to be on INFO level. In .NET LogScope implementation, we use a level between INFO and VERBOSE, which means the LogScope will only appear when VERBOSE level is set. I think we should do the same here and use FINE level for all LogScope.