Adding LogScope classes

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 is to resolve https://issues.apache.org/jira/i#browse/REEF-24?filter=12329580

Use `Optional` to distinguish.