Add an ExecutionSummary object that the Evaluator and LinearSolver can use to report execution statistics of all kinds. Currently a single map which maps arbitrary strings to doubles is supported, which allows for precise timing information to be communicated. Change-Id: Ibd930aca5c9e6cae89bcfeffe9b13e2887644881