Adding support to do real prefetching on libmemcached

When calling mget, the function flushes all the previous results. This blocks
the usual prefetching strategy which consists on doing many calls to mget and
fetch all the results later on. We added an behaviour flag, to avoid this when
we want to do prefetching.

The flag is MEMCACHED_BEHAVIOR_MGET_FLUSH_OLD_RESULTS, and the defaul value is
true. Set this to false if you want prefetch results.
Adding .gitignore file and updating some autoconf files
Updating .gitignore with build artifacts
Binary multiget check the responses queue to be empty. This also brokes prefecthing keys.
It's ok to set the socket options also on a unix socket (this allows non-blocking mode)
Solved issue with packet lost or reordering on UDP multigets

When receiving large multiget responses, some reordering could lead
to an incorrect assembling of the response, mixing two request_ids
without being properly detected.

The problem is triggered when receiving the first datagram of a response
(udp_header->sequence_number == 0) in the middle of a proccessing of
other UDP response.

The hard part is to properly detect this situation and also handling
packet loss properly. In order to do this, we reset ptr->num_datagrams
at binary_read_one_response to indicate the beginning of a new response.
Enabling prefetch also on textual protocol
Testing new way of flushing results
Add hash_port_consistent behavior

Flag to decide whether to include or not the port when hashing the
hostname in consistent hashing mode. By default the port is excluded.

Useful if you connect to the same memcached servers by different ports.
Merge pull request #1 from jimenezrick/master

Add hash_port_consistent behavior
Do not masquerade UDP timeout as misses