Bug 915278 - [clock] Create IndexedDB wrapper to support database upgrades/downgrades

This commit adds SchemaVersion and Database objects used to support
flexible upgrades and downgrades in an application.
Increase test timeout for expensive database operations
There is a Sinon fake timer leak somewhere in the test suite, this allows the tests to pass for now.
Improve error handling with blocked database opens
Fix sinon faketimer leak and restore setTimeout in LazyLoader mock
ternary -> Math.min
Fixed sortedInsert call to maintain unique invariant
fixed lazy loader mock
test this.name getLatestVersion
Improved singleton API and added a test
review changes
simplify connect logic
Fix comment in setLatestVersion
space
removed unused code
spy on multi-step upgrader/downgraders