- initial revision
- add support for plain util.Observer implementation to DBConnection
- add rdbms.DBConnection::getDSN() which returns clone()'d DSN
- add __clone callback to rdbms.DSN
- change connect() to emit two DBEvents: first "connect", then "connected"
  to be able to measure connection establishment timing
- add testcase for ProfilingObserver
- adjust code to satisfy tests; more to come.
- refactor to gather more sophisticated data
- adjust unittest + add coverage
- getTimingAsString() and tests
- add destructor test
- add test coverage for sql verb detection and internal state handling
- register new test
- QA: Add apidoc
- QA: Apidoc / move helper methods to top
- QA: Add better error message to asserts in ...time_aggregation()
- Fix fragile test
# Elapsed time after usleep(100000) was 0.099999904632568 in some
# cases (1 - 2 of 5)
- Use "X.Y" notation for double numbers
- Test DSN cloning
- Move password cleaning to DSN
- Test ProfilingObserver::typeOf()
- Anti-fragility measure
# This sucks
- use DBEvent constants instead of plain strings
- add new constant DBEvent::IDENTITY
- use DBEvent::IDENTITIY in all relevant places
- make sure connect() triggers CONNECT, then CONNECTED