1191 Simulation Mode

This adds a simulation mode to satisfy #1191.

This needs a testcase to verify that the application context being passed from the ScanManager down to GPSScanner, WifiScanner and CellScanner gets properly wrapped with the SimulationContext, but this branch should merge cleanly to dev.

Let's just merge it in and add more tests along the way.
How is the null assignment used? I assume simulation needs this?