Changed Timer to System.nanoTime()

There are many options for timers in android all with their own
problems.

Ones Considered:
- (Previously being used) SystemClock.uptimeMillis() has problems with
sleep and can drift.
- SystemClock.elapsedTime() has problems with drifting.
- System.currentTimeMillis() has well known issues with clock changes.
- System.nanoTime() based off boot time and very stable with
drift/sleep.

So with that System.nanoTime() became the new basis for the timers used.

* New Timer based on System.nanoTime()
* Removed unnecessary complication introduced with MissionTimer.java
and merged couple methods used down to StopWatch.java.
* Moved most timing to use nano seconds to be aligned with new timer.