Build fixes for MSVC and clang

- cbc: Fix formatting for cas printf. This uses a new my_inttypes.h to
  properly format the CAS on multiple platforms
- cbc: Include stdint.h and config.h because windows lacks the uint_*
  types (they might be included in later versions of C++ but currently
- pillowfight: Apparently windows C++ doesn't think size_t and
  lcb_size_t are the same.
  break on visual studio 2010)
- Histogram: fix shadowed class member
- Fix mixed code and declarations in get.c
- Fix mixed code and declarations in negotiate.c
- Remove empty files from ioserver tests
- Clean up code for -Wno-cast-align (clang)
- Autotools: Link against snappy when enabled

Change-Id: I6311c58bb2aa103f0b0477c332ec9076cdc17883
netbuf: Use 'cursor' semantics regions with start_flush

This fixes an issue where sometimes the same data would be flushed twice
because a call to start_flush() was made before a prior call to
end_flush had completed. For some reason this was only reproducible on
IOCP/windows.

Change-Id: I466c56ca4e927f4b881a604817c994aa7766095c
iocp: don't requeue overlapped if stop_loop is called

While this might have good intentions, the ordering of operations --
namely read operations is important. If we repost an event we'd also
need to reorder everything.

I just happened to notice this while looking about :)

Change-Id: I4c542ab792db7f450e325a12b5f39d0135a0fe2a
Enhance API documentation

- Undocument older create_st fields
- Document iops integration APIs with libev, libevent, and libuv

Change-Id: Ia1d889b2cfc406fde015652062b90b2640070dbf
make server->curhost a pointer

This wastes 1k of memory within the server structure and it's barely
ever accessed.

Change-Id: I6db4676138e810e8890f3a1b40b0be800811e26c
lcbio: optimize field layout and access patterns

- Move some fields closer together in lbcio_CTX
- Use cached fd field in CTX rather than ->sock. This makes it so that
  we never actually have to reference the socket structure in normal
  usage

Change-Id: Idd8cfbf7d4ec0cedb8f70dee1745bbb8bc263218
Add extended 'try' mode for completion-style I/O

This patch allows completion-style I/O to have 'immediate write
completion'. This is often when there is enough buffer space in the
socket to write data immediately without needing to allocate a new
buffer and write structure to perform a so-called asynchronous write.
Currently this feature is not implemented in any of the plugins and the
interface may change in the future.

Change-Id: I9407b46dfdc88d1baf01d1ed3b734f0497cb888d
travis test..

Change-Id: I0b2c34b6c316b2dc5be3139d6014ba3618599574
lcb3 response API stubs

This commit adds some stubs for the response API. none of these APIs are
implemented yet.

Change-Id: Ie1e2d9919b0ae4e0ed6974f67fc3f9d8e8a65c00