verity: support building hash trees deeper than one level

Two bugs were occurring here:
1. dm_bht_compute didn't enforce FULL_REVERIFY.
   This mean file_hasher.cc was fine, but unittests were not!
2. verify_path starts from the top of the tree (near root)
   and traverses down towards the leaves (blocks).  By doing so,
   hash computation trickled down instead of upward when creating
   a new hash set.

This change also pulls in the mempool_free() fix in the kernel.

TEST=tests pass, msb's pending unittest changes pass; built  akernel without it and with verity-9999 emerged to the chroot and the image booted.   When copying to the kernel tree, we will test deeper trees there.
BUG=chromium-os:9033

Change-Id: I193fb45a318a2c6fc420d793a2fdfcf008757219

Review URL: http://codereview.chromium.org/4629001
1 file changed