tests: Check that absolute symlinks work in reverse mode
Exit on corrupt config file instead of overwriting it

This is something that should really not happen, it makes
sense to have the user examine the situation himself.

Behavoir was:

	23:00:42 (FileUtils.cpp:379) Archive exception: XML start/end tag mismatch - uniqueIV
	23:00:42 (FileUtils.cpp:337) Found config file /tmp/a/ciphertext/.encfs6.xml, but failed to load
	Creating new encrypted volume.
	Please choose from one of the following options:
	...

Now it exits with:

	23:13:04 (FileUtils.cpp:337) Found config file /tmp/a/ciphertext/.encfs6.xml, but failed to load - exiting
Actually print error message in withCipherPath and withFileNode
V6SubVersion: Add comment explaining that the effective version is 20

..for boost 1.42+.

Note that RHEL 6 uses boost 1.41, so there may still be a few users
that are not running 1.42+.
Add comments describing the config load functions
Add comments documenting the filesystem config options
Add function descriptions to BlockFileIO
tests: Move helper funtion to common.inc

Also fixes md5fh's fd leak.
Handle ENCFS6_CONFIG set to non-existing file

This used to give the confusing error

	Found config file %s, but failed to load - exiting
Log offending filename "too small" errors
tests: explicitely verify that the reverse mount worked
Disable unsafe kernel caching for --reverse

By default, the kernel caches file metadata for one second.
This is fine for EncFS' normal mode, but for --reverse, this
means that the encrypted view will be up to one second out of
date.
This causes the reverse grow tests to fail because stale stat()
data is returned.
tests: Add --reverse file grow test

This test uncovered issues caused by unsafe kernel-side and BlockFileIO caching.
Check the assertions in cacheReadOneBlock explicitely

...to make the code more robust w.r.t. refactoring.

Also add comments about the last block handling.
Implement --nocache

Disable block cache (in EncFS) and stat cache (in kernel).
This is needed if the backing files may be modified
behind the back of EncFS (for example, when you mount
an encrypted filesystem exported by encfs --reverse).

The reverse grow tests fail when this option is not passed to the
decrypting mount.
Implement uniqueIV for reverse mode

For now, the IVs are constant. This is fixed in a later commit.
They are enabled by default to make testing easier.
The whole thing passes the test suite on x86 and x86_64.
tests: Also verify file contents in grow test
tests: Get rid of df warnings

Like "Transport endpoint is not connected" when there is
a stale FUSE mount lying around
Document SSL_Cipher::setIVec
reverse: Derive IV from inode number

The truncated SHA1 hash of the inode number is used as the IV
for files encrypted in reverse mode.
Passes the test suite.

Closes #24.