Make logging level configurable
Mention no. of failed tasks while logging.
Make number of job submission threads configurable.
Call ExecutorService.shutdown() at finish to gracefully stop the dangling threads

The program was not stopping even after SparkContext was stopped and everything. The ExecutorService needs to be shut down too.
Fix the issue where DistConfig.sparkLogLevel was getting null and not the default Level.WARN

Problem was: getValue() returns null directly instead of passing it through the closure.
Return 0 for completed tasks and failed tasks count respectively, if the maps have no such value.

Example: Often in a stage the first TaskEnd event may tell us that the task has failed - in that case doing this.stageIdToTasksComplete(stageId) would cause a NoSuchElementException. Similarly for stageIdToTasksFailed.
Merge pull request #32 from dbpedia/feature-loglevel-config

Make logging level and number of job submission threads configurable