blob: removed support of compression

This is non-backwards compatible change:
All reads to compressed data will return -ENOTSUP
All writes with BLOB_DISK_CTL_COMPRESS flag set will return -ENOTSUP
tests: stress: simplify retry logic
mobjects: lock backend during eblob_remove_blobs()
tests: stress: test three read paths
tests: stress: test three stage write
blob: replace linux-only EBADFD with EILSEQ
blob: added __attribute_always_inline__ helper
blob: renamed eblob_update_index() to eblob_commit_disk()

Now it's consistient with eblob_commit_ram()
blob: always update data and index file simultaneously.

This fixes bug when datafile index is not updated during overwrite.

Also removed cfg.bsize handling for now.
hash: simplified hash lookups

Now that we have only one rctl per hash we can greatly simplify hash.

Also while here speedup l2hash: do not look in hash in case l2hash
lookup failed.
And fix stats in case of errors: update hashed only if err == 0
blob: copy record only if it's really needed

We can enchance 'contiguousness' test by sorting iovs, merge adj. and
splice overlapping.
blob: less extensive logging
misc: define offsetof only if it's not defined
blob: replaced __eblob_unused with __attribute_unused__
data-sort: speedup notes
blob: use memcmp in eblob_id_cmp()

On lucid there is 10x boost on using non-gcc's memcmp:
$ gcc -O3 -o test test.c && ./test
Time: 245 ticks (4279 memcmp/tick)
$ gcc -O3 -fno-builtin-memcmp -o test test.c && ./test
Time: 22 ticks (47662 memcmp/tick)

test.c can be found here http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
tests: stress: remove obsolete usleep()
api: simplified prepare/plain/commit

Do not accept write_control only extract few fields from it.
This greatly simplifies API but this is non-backward compatible change.

Also in future releases we can add special *_return conterparts to
speedup common work flows.

Also plain write does not commit changes on each write.
api: unified API

Provide both:
    1) Simple eblob_writev() for end users and
    2) Extended eblob_writev_return() for elliptics
config: removed bsize and cache_size config options

Also added different types of padding to eblob_config structure. From
now on it'll be easier to add new fields to it.