Fix the run start/end time formatting in run info

1. The rundb.RunDB interface returns the seconds field with decimals
   up to milliseconds even though they are always 0.  Remove them.
2. The JSON interface returns in "<date>T<time>" format whereas
   rundb.RunDB returns "<date> <time>".  Prefer the later.
Remove expectedFailure
Bug fix: millisecond decimal place fix was buggy

Clearly separate fixes by backend, more readable.
Simplify test definitions (clean up repetition)
Fix test welcome message
Handle another run info state
Allow returning valid runs with no time_threshold

When time_threshold is None, include runs w/o valid durations in valid
runs list.  The reasoning is, end-of-fill calibration runs can have
invalid info['starttime'] or info['endtime'].  Experts may want to
request processing of such runs (interactively).
Add a new strict run check flag

When time_threshold is None, strict run check is off (default).
Bug fix: was comparing (==) instead of assigning (=)
Add a new run state
Bug fix: typo in decorator __fix_info__
Add strict check info in Exception message
Fix wrapped function name and doc string

Function signature is still broken.  SO[1] suggests using the
decorator module but unavailable on plus*.

[1] <http://stackoverflow.com/a/147878/289784>
Change valid run range in rundbquery test
Modular test cases, also separate them into suites