Add streaming check.

This commit changes Tx.Check() to return a channel through which check errors are returned. This allows
errors to be found before checking the entire data file.
Merge pull request #176 from benbjohnson/streaming-check

Add streaming check.
Optimize Tx.Check().

This commit removes several memory allocations occurring on every page and also caches the freelist map used when iterating over the pages. This results in significantly better performance.
Merge pull request #178 from benbjohnson/optimize-check

Optimize Tx.Check().