gitignore: add __pycache__ and *.pyc
omcache: refactoring to support multi request and response calls

Update omcache_command and omcache_io to work on arrays of requests to allow
multiple requests to be easily sent at once and responses for them to be
looked up efficiently without forcing callers to use callbacks or worry
about memory allocation.

omcache_req_t was updated to include the full memcache request header struct
and an optional server_index which is used for requests that don't use keys.

omcache_resp_t was replaced by omcache_value_t which includes the fields
that are generally useful in get requests.  Other requests can use the
structure too, or they can just be used using the omcache_command_status
interface that only returns the response status instead of any values.
multi operations: handle invalid params and no values

This makes it easier to write higher level multi-command operations where
the commands are sent in a single call without reading any responses at that
point and handling all the responses in a loop over omcache_io().