Make database instance and pool impls lifecycles.
Use Lifecycles helper to avoid boilerplate exception handling
Expose isStarted on instance and pool impl.
Only stop instance and pool if started.