Preload internal pages into file system cache with compression.

Previously the functionality only worked without compression enabled.
O_DIRECT is a global flag for the engine, which requires file page allocation
sizes be at least as large as the required alignment (4KB on Linux).  We've
been relying on the application to do the right thing by configuring
allocation_size=XXX as part of the WT_SESSION.create call, but that isn't
sufficient, as there's no way to set the page allocation size for our internal
files (in the Facebook case, WiredTiger.wt).

Add code to silently change any file allocation size to at least as large as
the buffer alignment we're using, plus, if it's not a multiple of the buffer
alignment, increment it to the next largest multiple of that value.  The
former is known to be necessary, the latter is because I think it's likely to
be necessary and I can't prove it's not.  (And I'm tired of screwing around
with this.)

One minor code shuffle, we've been passing the the file allocation size to the
block manager on create and truncate, doing that same thing for open removes
the last place in the block manager that looks up the allocation size, which
is probably the right simplification to make.
Because the internal and leaf page maximum sizes must be a multiple of
the allocation size, we have to make the same direct I/O adjustment to
them that we do for the allocation size.
src/lsm/lsm_meta.c: function with return after a jump to an error label
LSM trees don't support named checkpoints: disallow attempts, add
documentation, and change test/format to not attempt it.   Ref #546.
Merge branch 'develop' into more-direct-io
Change the default page allocation size from 512B to 4KB, change the
maximum internal-node page size from 2KB to 4KB, attempting to avoid
likely direct I/O problems on Linux.   Ref #547.
If the default leaf/internal page size is 4KB, then setting it to
something smaller requires setting the allocation size as well,
because page sizes must be multiples of the allocation size.
Re-work the page, allocation size checks: instead of silently modifying
them, we've set the default to 4KB, and now we complain if the chosen
page or allocation size isn't at least as large as the buffer alignment
value, as well as a multiple of the buffer alignment value.
Note the default allocation_size and internal_page_max size changes
in the upgrading page.
Add a test case for a performance regression.
Yet another rearrangement of the forced eviction code.  Now check the first time we read a page in a transaction.  That way, it shouldn't contain updates from the current transaction that prevent eviction.
Merge pull request #547 from wiredtiger/more-direct-io

More O_DIRECT changes, including changing the default allocation size to 4KB.
Don't use WT_ERR after the "err" label.
test/format assumes an allocation size of 512 bytes.
refs #547
Update new test case to run in a reasonable time.
test/format assumes it can create 512-byte pages, so set buffer alignment to 512 so it can be tested with direct I/O.  This isn't sufficient for systems that require 4KB alignment, but we don't (yet) test on one of them.
Avoid named checkpoints in test/fops now that they are prohibited with LSM.
Merge pull request #550 from wiredtiger/named-lsm-checkpoints

Disallow attempts to create named checkpoints on LSM trees.
Pass owner through LSM and index cursors, so that are closed in the correct order if they are part of a layered cursor.
ref #551