Add "size" parameter to AppendBlockFile.

Extend AppendBlockFile with a new "size" parameter that is used to check
for disk space directly in the routine.  It is also verified that the
number of written bytes matches the size, but the size is not yet used
for anything else.  In the future, it will be used to preallocate the
block file in chunks.
Undo the change to make CheckDiskSpace static.

CheckDiskSpace is used also in init.cpp, so can't make it static.
Make AppendBlockFile extend the file in chunks.

Keep a number of "reserved" zero bytes at the end of the block files,
and if they are not enough in AppendBlockFile, always extend the file
size by a larger chunk.  This may prevent excessive fragmentation in
NTFS / Windows.
Use passed-in DatabaseSet in AppendBlockFile.

Instead of constructing a manual CTxDB object in AppendBlockFile, use a
passed-in one.  This seems to be less prone to dead-locks.
Merge pull request #141 from domob1812/fragmentation

Improve disk fragmentation of block files