features: rework feature test macros
cmake: added optional hardening support
cmake: additional compiler warnings
stress: make local functions static
blob: make local functions static
cmake: added sanitizers

Can be used in Clang >= 3.0 and gcc >= 4.8
cmake: added modeline

Also cleaned up commented code
cache: use memmove for overlpping ranges
Merge pull request #18 from SaveTheRbtz/master

Stability, build improvements and sanitizers.
data-sort: clarified comment
data-sort: more clear assert

This is basically the same because at this point
unsorted_chunk->offset == sorted_chunk->offset but it feels more natural
this way.
data-sort: note about iterator error handling
tests: stress: fixed compiler warning
data-sort: propagate callback's error to the iterator caller

This fixes assertions that are result of failed iterator (mostly due to
badly broken data/index files).

Reported by: agodin@
mobjects: do not leave empty bases on open failures

After hitting open files limit eblob may end up in a loop of creating new
base on each write request.

Like so a bunch of empty bases were created:
rbtz@storage1b:~$ ls /srv/data/0/|wc -l
43481

Now we cleanup created base on any error in following code.

Reported by: agodin@
Merge remote-tracking branch 'upstream/master'
Merge pull request #19 from SaveTheRbtz/master

Fixes for bugs reported by agodin@
v0.19.2