tests: Add messages from syslog to the test's output

All LizardFS modules put their logs in the syslog. After the test fails
one can find a lot of useful information there. This change does two things:
* adds everything from syslog to the standard output of the test
* publishes messages from syslog in TEST_OUTPUT_DIR (if provided)
utils: Make information printed by file-validate more useful

When a test fails, file-validate leaves some information, but it contains
only an offset where there is something wrong with the file. Extend this
information:
* If the file size if wrong, print expected and actual file size
* If the data is corrupted, print expected and actual data
* If a syscall fails, make the error information more clear

Closes #120
tests: Fix bug in test_end

test_end should always call exit, to make it possible to end tests
just by calling test_end.
tests, master: Fix test_metadata_recovery run with valgrind

It was not possible to run this test using valgrind. After some fixes it
is possible, but valgrind found some memory leak in the master server, which
is also fixed in this commit.
utils: Add inode information to file-validate's output

When there are any problems with the LizardFS filesystem all the
files are identified by their inodes in the syslog. Adding inode
information to the output of file-validate will make it easier to
match information about corruptes files with the errors in syslog.
tests: Fix descriptor leak test to work with valgrind

The test tried to obtain chunkserver pid using 'pidof mfschunkserver',
but this doesn't work when chunkserver is being run under valgrind.

Moreover, the default timeout multiplier of 5 turned out to be too low.

Use 'mfschunkserver test' instead of pidof and increase the timeout
multiplier to 10 to fix the above issues.
tests: Add complex test with valgrind

There was only a simple write and read test under valgrind. This commit
introduces a test which checks more use cases:
* mkdir
* create a file
* rename a file
* ls -l on dir
* truncate up & down some file
* set trash time
* make a snapshot
* copy-on-write
* concurrent writes and reads
* remove a file
* restart the master server
* restart a chunkserver

Closes #126
utils: Add file-overwrite

This commit adds a binary 'file-overwrite' which changes the content of given
file to be validated by file-validate.
It also does cosmetic changes in file-generate.

Closes: #128
mount: Remove unused module 'chunkloccache'

Closes #130
master: Refactor 'struct chunks'

Remove unnecessary typedefs, simplify lots of state updation code.
master: Support chunk state update notifications

Reloading chunkserver configuration can transition some chunks between
the VALID and TDVALID states. The chunkserver notifies us about such
event with the LIZ_CSTOMA_CHUNK_NEW message.

Make master update chunk "todel" state upon reception of such message.

Also, try to handle some unexpected updates that can theoretically
occur due to some bugs.
master: Fix versions of temporary throwaway chunks

When chunkserver reports a chunk with ID unknown to master, master
creates a chunk with this ID in its data structures and lets chunk
jobs take care of removing it (as an unused chunk).

These temporary chunks were getting wrong IDs when copies reported
by the chunkservers were marked "to delete". This commit fixes it.
packages: Update source url in rpm spec
common: Add custom exception

This commit introduces an exception which contains a message.
tests: Fix race in test beginning

Sometimes automatic tests were failing because writing data started before
every chunkserver has registered its space in the master server. This commit
introduces a binary which can check how many chunkservers are ready to work,
and makes a good use of it.
master: Update maxtotalspace on CS registration

Master keeps a variable indicating the highest amount of disk space
available on any chunkserver.

By omission, this variable wasn't updated during registration with
version 5x packets. Fix it.