Merge pull request #13 from SaveTheRbtz/master

Misc and portability fixes
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.
Merge pull request #14 from SaveTheRbtz/master

Faster stats, Adaptive mutexes and Coverity report fixes
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
cpp: add ability to read w/o checksumming
v0.18.6
bloom: added (probably) usefull notes
Merge branch 'devel'