Introduce crcutil library

This commits adds a possibility to use crcutil library in the LizardFS
code. This library is automatically downloaded when cmake is being run.
common: Use crcutil for CRC calculation

This commit changes the implementation of the CRC algorithm to
the one provided by crcutil library. The new code is rougly 3
times faster than the previous implementation and should result
in a noticeable decrease of CPU usage on some installations.
tests: Add GoogleTest framework

This commit provides capability to make unit-tests using GoogleTest framework.
Framework is downloaded automatically to source directory (external/gtest*)
during project configuration.
unittests: Introduce GoogleTest framework usage

Prepare infrastructure to make unit tests using GoogleTest.
Add build files to gitignore

It's nice to build the project and have nothing listed as untracked
with 'git status'. This will reduce the chances of accidentally
committing binary, configuration, or build files.
Fix debian package building mechanism

This comit makes it possible to build debian packages using
dpkg-buildpackage. This fix is a kind of workaround -- it makes
it possible to compile and install the sources using the same
commands as when using autotools, but actually uses cmake build
system. It is still experimental, ie. not tested very well.
unittests: Add tests of mycrc32 functions

Add some tests, which test mycrc32, mycrc32_combine, and
mycrc32_zeroblock functions as well as the value of MFSCRCEMPTY constant.
Use path relative to src/ when inluding headers from common

This commit changes all the source files to use paths relative to
src/ directory when including files from the src/common directory.
This makes it more clear which files from a serie of #includes
belong to which module.
common: Fix includes in massert.h

The massert.h file used errno, but didn't include errno.h.
This commit fixes this issue.
common: Add time utilities

Add facilities for portable access to monotonic clocks, time measurement
and timeout management.
common: Add framework for handling packets

Add code that handles incomming and outgoing packets. Packets that are
handled by a new code have common header consisting of a packet number
and packet content length. Content of all new packets starts with 4 byte
version.
common: Add NetworkAddress class

This commit introduces a class, which represents an address
of a server over a network. Currently this class is implemented
as a pair (ipv4, port).
mount: Refactor write worker

This commit refarors write_worker function in mount. It does not
change the behavior in any way, just makes the code easier to
understand for future developers.
Fix debian package building mechanism

This comit makes it possible to build debian packages using
dpkg-buildpackage. This fix is a kind of workaround -- it makes
it possible to compile and install the sources using the same
commands as when using autotools, but actually uses cmake build
system.
Pull request: https://github.com/lizardfs/lizardfs/pull/77
tools: Fix conversion numbers to human readable IEC format

Function 'print_humanized_number' has been refactored.
In addition there was a bug for 'IEC' format conversion:
Old function was returning e.g.: '1.0KiB' for '1023' bytes..
The bug was a result of using always '1000' as a 'base'
for both 'SI' and 'IEC' rounding. The 'base' should be accordingly:
'1000' and '1024', even for rounding.
tools: fix includes' alphabetical order
Copyright and authors update.
Merge pull request #88 from aNeutrino/authors_update

Copyright and authors update.
Merge pull request #87 from camelon/fix_order

tools: fix includes' alphabetical order
unittests: Fix mycrc32_combine unit test

Unit test for 'mycrc32_combine' did not checked 'MFSBLOCKSIZE'.
It was producing 'segmentation fault' for 'MFSBLOCKSIZE' lower than '65536'.
In particular using: 'cmake -DENABLE_LIGHTMFS:BOOL=YES' is using 'MFSBLOCKSIZE=4096'.