Sync up the two implementation of Database<>::LatestTreeHead.

Also use the CHECK family of macros instead of assert(), to make sure they
are always active (if one of these things aren't true, something is very,
very wrong!).
Strengthen a few things in LogLookup<>.
Remove unused methods of Database<>.

Also make two internal methods protected.
Update LogLookup<> through a callback on Database<>.
Fix up the test.