We should also use conditional compilation to only include deps & code when X db is requested (// +build boltdb). (https://github.com/tendermint/tendermint/pull/3604#discussion_r279671629) Refs https://github.com/tendermint/tendermint/issues/3273 Also we should move implementations into separate packages (bolt, goleveldb, memdb, etc).