This commit adds a migration to add 2 columns to the test_runs table to
store microseconds for the start and stop time stamps for each test_run
row. Previously we were relying on the microseconds to be carried over
from the datetime object passed into the sqlalchemy object, however in
certain configurations this data was being lost. To avoid this in the
future this decouples the microseconds from the timestamp so we're no
longer dependent on the underlying db to store this correctly.
As part of this it adds a new config flag to skip the functionally
optional parts of migrations. If there are operations which are
nominally optional in that if they weren't run the functionality
wouldn't be any difference in the result given certain DB configurations
(in this case if the microseconds were already stripped by the db)
Change-Id: Ibaafb7d8fc8a8e8aaf7b96672d5c47f46180e0ca
Story: #2000096