Make all built-in plugins use the 'v2' field internally

This was causing some serious issues with the select plugin as it would
refer to the internal '.v0' field for various function calls which just
did not exist.

A future commit will explicitly deprecate these API calls, but I'm
trying to keep this particular commit small for now.

Change-Id: I04486be70aa6b27ab62f6ce7c80799f5021957f6
Add SSL Unit Tests

This adds a test for very basic SSL functionality; just to ensure we're
not DOA for each change we do.

Like the other core socket tests, this test actually constructs an
isolated server using OpenSSL's BSDeque I/O methods.

Change-Id: I1e7ad8bcffd59ef8479716188fb3a987aadc383e
ssl_c: Plug ownership/callback leaks

See inline comments and modifications for the painful details. In short:

- Always ensure pending write buffers are explicitly freed (i.e.
  returned to the lcbio_CTX/lcbio_SOCKET level) when the CSSL object is
  closed.
- Always trigger the user callback if a user-request is effective for a
  read and we have an error.

Change-Id: Id9ffd96d66505b3ec6f9d6ec479fe504432caa52
Use C++ for http API routines

Change-Id: I9582a13aeaa03ce4db69f68aab8c3a4123b3c7a7
Deprecate v1/v2 IOPS access internally

We just patched up a bug from older code which was using the 'v0'
fields. Let's avoid this in the future by disabling access to all the
'v1' and 'v2' specific plugins.

Note, non-internal code (i.e. LIBCOUCHBASE_INTERNAL is not defined) will
still work (and not get warnings), and the ABI structure will also
remain the same.

Change-Id: I42affa93f40f5db182bb8ebffc46f2758ad386e7