Don't call positionMapTimer.elapsed() until timer is running.

We actually ignore the value returned until positionMapTimer.start() has
been called, so this won't cause any program misbehaviour. But we might
as well use the timer API as intended.
Improves MythTimer contstructor.

Many times a MythTimer is constructed and start() is called immediately afterward.
This adds a parameter to the constructor StartState, so instead of:
  MythTimer t;
  t.start();
  do_something();
  int e = t.elapsed();

you can write:
  MythTimer t(MythTimer::StartRunning);
  do_something();
  int e = t.elapsed();

This also reverts [9402858049], which made starting the timer running the default.
The bug requiring that hack was fixed in [926464a3f1].

This also allows you to define DEBUG_TIMER_API_USAGE and have MythTimer assert
that the timer is running when elapsed is called to catch timer API misuse.