This adds a Flush method to the DB interface so that users of the DB
type can flush the underlying database to disk as needed.
The immediate use case for this is to allow for flushing dependencies.
For example, the block database always needs to be flushed to disk prior
to the UTXO database being flushed to disk to ensure that the UTXO
database remains in a recoverable state in the event of an unclean
shutdown.