Add freelist cache.

This commit adds a cache to the freelist which combines the available free pages and pending free pages in
a single map. This was added to improve performance where freelist.isFree() was consuming 70% of CPU time
for large freelists.
Merge branch 'master' of https://github.com/boltdb/bolt into free-cache
Clean up freelist reindex.
Merge pull request #215 from benbjohnson/free-cache

Add freelist cache.