bloom: reworked bloom filter

Added clean public API:
 * eblob_bloom_get()
 * eblob_bloom_set()

Replaced per-index block bloom with per-bctl bloom. There is no need to
traverse index blocks tree if there is no key in bctl.

This also reduces pressure on memory allocator, memory fragmentation and
reduces eblob memory consumption.

Now bloom filter works for non-hashed values.
We using both fnv1a and djb2a internally, but because all internals now
hidden behind API this may be easily changed in future releases.
bloom: optimize bloom computation

* Always inline bloom
* Do not pass function pointer to allow inlining
* Fall early on EBLOB_BLOOM_CMD_GET
data-sort: actualize comments
bloom: replace djb with K&R hash

K&R hash is faster and gives better distribution for already sha512
hashed keys. But it's still useless for unhashed keys. For them we use
FNV-1a.

Also on eblob_bloom_get() test K&R key first because it's almost free.
data-sort: skip sort stage for already sorted bases

This should significantly decrease time to defragment already sorted
blobs.
api: added eblob_read_data_nocsum() public API
bloom: added (probably) usefull notes
stat: added notes about atomicity of update
index: allocate index blocks in contious region

This decreases allocator pressure on start and decreases memory
fragmentation.

This also stepping stone for removal of index blocks tree which will
further reduce memory footprint and possibly increase speed.
stress: missing whitespace in help
stress: change default sync to -1
cpp: add ability to read w/o checksumming

Added overloaded versions of following functions:
    std::string read(...)
    int read(...)
    void read_hashed(...)
    std::string read_hashed(...)

Now they accept parameter of type
    enum eblob_read_flavour csum
which can be either:
    EBLOB_READ_CSUM
    EBLOB_READ_NOCSUM
Merge branch 'master' into devel
Merge pull request #16 from SaveTheRbtz/master

Reworked blom filter and index blocks. Optimized defragmentation. New C++ API. v2.