Allow an UAcontext to have two database connections.

For some operations we want to use a private database connection as they
are either long running or may interfere with each other. We now keep
track of the normal shared database connection and a private database
connection used for these kind of operations that can run over a
dedicated database connection without leading to synchronization
problems in the data. Things like BVFS, restore, prune, purge etc can
all use this private database connection so they no longer block others
and for restore also don't lead to race conditions. These connections
we keep lingering until a close_db() call is done on the UA.