Timestepcontrol

This PR includes all utility classes needed to enable the Blackoil simulator with adaptive time stepping. 

The AdaptiveSimulatorTimer implements a class for handling the time steps. The API follows that of SimulatorTimer closely. 

TimeStepControlInterface describes the interface for a time step control method. Currently, there are two implementations, the PID and the PID + target iterations. The PID is described in the literature links given in the documentation. 

AdaptiveTimeStepping implements the adaptive sub cycling for a given time interval, in case of the Blackoil simulator this is a report time step. 

Parameters to be chosen are: 
timestep.adaptive=true (default is false)
timestep.control=pid or pid+iteration
timestep.control.targetiteration=50 (default is 25)
solver.verbose=true
solver.restartfactor=0.2 (default is 0.1)
solver.restart=2 (default is 3) 

The solver.* parameters are basically to manage the restart of the solver when convergence failed. 
The timestep.* parameters are for managing the time step control. These parameters are to be added to the .param file. I'll try to upload a SPE9 example without pre-described time steps.