Intorduce package level db handler

Maintain a single handler for all intra-process database connections.
This has the side effect that mutexes using the same connection (e.g. in the
same process) will be able to lock the same mutex. For these use cases,
sync.Mutex should be used instead.
Package level documentation