In order to mmap read-only checkpoints, we need a place to store a
per-checkpoint mapping.  We don't currently have a per-checkpoint
structure in the block manager, we only have the per-file WT_BLOCK.
Add the WT_BM structure, which is a per-checkpoint structure.

While we're in the area...

Share the underlying WT_BLOCK structure between WT_BM structures, this
means checkpoints into the file will share a single file descriptor.

Give the WT_BM structure a set of method pointers, this is the change
that we'd need to plug in other block managers.

Some minor cleanups of size_t/uint32_t values.
Add a test the confirms verify truncates the file as necessary.
Generalize the check for verify's error message.
There was a salvage test that (according to the comment) was testing
that a salvage operation with an open connection/session handle would
fail; the test is wrong, an open connection/session handle is fine, it's
an open cursor that will cause verify/salvage to fail, and the test
didn't actually test for a raised exception anyway.  Remove the test
from test_salvage.py, add test_bug006.py that confirms that verify and
salvage both fail if there's an open cursor.
Add the rest of the session methods that should fail with a cursor open.
Add mmap support for read-only objects (a read-only object is an object
using a checkpoint other than the "live" system).  Basically, when a
read-only object reads pages from the backing file, it maps them into
memory rather than copying them into the buffers.

This change adds support for a new class of WT_ITEM buffer, one that has
WT_ITEM_MAPPED set.  The WT_ITEM_MAPPED flag gets set when the buffer's
object is mapped into memory by the underlying block manager read call.

Add configuration string "mmap", defaults to on, turns off mmap calls.
Don't include the backing disk page size if it was mapped into memory.
Add wording about read-only objects and mmap to the Performance Tuning page.
minor wording cleanup.
Add better wording on checksum configuration, add wording for direct I/O
configuration.
Add a section on compression to the performance tuning page.
fix a comment.
Put the WT_BLOCK structure on the queue first thing, the corresponding
close function always removes it from the queue.
Add a test for forced salvage.
MAP_NOCORE is FreeBSD specific, Linux doesn't support it.
MAP_NOSYNC is no longer needed, WiredTiger doesn't write mmap pages.
Merge pull request #444 from wiredtiger/mmap

When reading from checkpoints, use a memory map.