allow to control if caching an item on set commands or not

and also if the 'arc_loose_mode' should be enabled

*TODO* document the 'arc_loose_mode'
ensure taking the 'cache_on_set' option into account in all paths

+ minor cleanings
failback to the local storage on set commands if marked as global

get commands were already honoring the global flag and failing back
to the local storage if unable to connect to the responsible peer.
The same logic is now applied to set/add commands
fixed some typos in comments
take the 'shared' flag into account

when determining if it's necessary to propagate the command to replicas or not
missing bracket
minor cleanings + proper error/debug reporting
fixed an error message
if the selected node is down, failback to a different node regardless of the use_random_node flag

the storage might still be shared/global and other nodes might still be able to fetch the value for a not-owned key
version bump + changes
filedescriptor-based API in shardcache_client

allows to retrieve data by using a filedescriptor so that
the caller can eventually register it in its own event loop

* TODO * documentation and cleanings
updated libiomux
better handling of the background thread for the fd-based interface
the async worker is used only when fetching a single item
updated dependencies
accumulate data in the get_multif implementation if not able to flush everything pending

+ some cleanings
use iomux timeouts on the managed filedescriptors

now that they are much cheaper to use
new spec for the version 2 of the protocol

some new messages have been introduced and GET returns now an extra record
(which can still safely ignored by older protocol implementations)
minor changes to the spec
definitions for the new messages