server failures: fix handling of failing and timed out servers

There were several different bugs here:

* omcache_poll_fds() had inverted logic for calculating connection timeouts

* omcache_poll_fds() did not consider connection timeout, now it resets
  connections if connect_timeout has passed and the last attempt failed

* servers weren't being disabled after connecting to all available addresses
  failed, causing clients to keep slowly trying to connect to failed servers

* make sure to zero out req_count and value_count if either of them is empty

* don't log one entry for each disabled entry in ketama
omcache_log_stderr: use context as line prefix and display levels
buffering: various fixes for sending and receiving multiple messages

Allocate a receive buffer by default and read more frequently in it.  Don't
stop reading into the buffer just because we found a response; read more
into it if we can do it without moving existing contents.

Make sure to set 'last_req_sent' based on the last request passed to
omc_srv_submit as omcache_command may now send multiple requests in a single
struct iovec.

Handle server flushing early in omcache_command instead of queuing multiple
requests to a single backend only to find out it's offline.

Also allow OMCACHE_BUFFERED in the python client's get_multi call.
Makefile: use -O2 optimization by default
request lookup: greatly simplified

Modified omcache_io to not modify request array at all and to check that
it's ordered properly, it can now only contain requests in req_id order with
no gaps which is what omcache_command() sets up.  Any other users of it will
have to make sure they pass in a properly ordered request array.

This simplifies request lookup logic a lot as we don't have to do any
lookups in the request list to see if incoming responses are interesting,
just req_id_min and req_id_max are enough for that.
server failures: try to bring nodes back online in ketama lookup
logging: allow minimum log level to be set, allowing optional debug logging

Also updated ketama log level from NOTICE to INFO; NOTICE level and above
should not log anything for every request if at least some backends are
online and should be usable in production.