Do the file magic check before fuse initialization

Once we enter the fuse main loop we are already on the background and is
not easy to provide feedback to the user, which might not have noticed
the wrong device name or file.  Linux even creates an mtab entry before the
process manages to die.  This commit moves the magic check before the
fuse_main call to avoid the problem altogether.
Statically allocate the superblock descriptor

No reason why to fix this other than less LOC.  Anyway, using malloc seems
a bit silly in this particular case where the size is really fixed and
allocated always.
Modify the inode_dir_ctx API to detach alloc and init

This commit changes the inode_dir_ctx_* API so that allocation and
initialization are done in separate places.  This means that we can reuse
buffers more easily.

We use this fix to improve inode_get_idx_by_path (ie, path resolution):
instead of one buffer per directory in the path, we now use only one buffer
per path.
Add back buffering to log file writing

The log writting was unbuffered, which really slowed down everything when
a log file was in use (for instance the tests).  I'm not really sure why it
was there in the first place...
Fixed one typo in the README
README: plain make won't cut for FreeBSD
test library: fix occasional umount failures

Although I'm not able to pin down *why*, it seems that my Ubuntu 12.04
machine sometimes complains that my mountpoint is busy, although it
shouldn't be the case.  Seems to happen more often in very fast testcases.

After this commit, if the umount fails, we will sleep for 1/10 of a second
and retry.
0011-file-integrity-large is not a "slow" testcase

After 84f0d53f the test suite is quite fast, and this testcase is still
faster than 0020.
test library: mke2fs binary handling

Altough Ubuntu leaves /sbin on the non-root $PATH by default, Debian
doesn't.  As a workaround, we manually try /sbin/mke2fs if nothing is seen
in the user $PATH.  If we still haven't found it, we now report an error.

Fixes #10