Twisted support

This adds twisted support using the following:

* New private 'async' module which returns future-like objects rather than
  waiting

* IOPS implementation for a twisted reactor

* txcouchbase package supplying a connection wrapping the internal Async
  object

Test enhancements were needed to make sure the test architecture was
usable with Twisted's trial.

Change-Id: I58a94944f6fbf308b307db532bd01d6cf6b9fc05
Don't unlock GIL if destroyed (callbascks.c)

Change-Id: I79294d185483f0fdd27aa6fae63029b05d096b28
Make destruction handling a bit clearer to user

Change-Id: I08e6e55722b6c291a34c7b42f68240551417010a
Don't recreate mock each time

Change-Id: I8af38bb2deb22fd22e387b4253f3e72ecb2217df
Make txbasic Py3 compatible

Change-Id: I8e3164766f84cabf19e8ee4bbbf7f9c910e9269d
Remove extra print in tests

Change-Id: I3d53b3494e26da641ae0537b977aa981f85389de
txbench: Uncomment callLater for test duration

Change-Id: Ic6856c50e3cac24e27c423e3fef15f6d0fb46726
Additional minor fixes:

- Make 'base' twisted class as TxAsyncConnection which just provides the
  initialization for twisted. Provide Connection(TxAsyncConnection)
  which actually wraps the API methods

- Remove 'name' from EventQueue

Change-Id: I19be4aba30f8adc72f8b84ddc6d3e7787526d0f2
Delete keys before incrementing them (test_itertypes)

Change-Id: If9c3dd6e824c633e4622f9681c70806f8193060b
Skip tx tests on Py3 or without twisted

Change-Id: I4a8cbda04765de32d214e38296ce1c4bed02aae4
tests.base: Fixup whitespace between class definitions

Change-Id: Ie2a3ecdee1fcb7aa1b42d6500a82e1b026ea0dd3
Don't import nose.exc in tests

Py 2.7 has 'unittest.case.SkipTest'. Import that first and fallback to
nose.exc.SkipTest

Change-Id: Ie6d64a019b3dbcc953e1b0a04796f9b11bf25ba0
Properly retrieve meta when there are no rows

Change-Id: Ifaf1c5a90eed1a4de3fc07405125727c57d4fe8a
tx/__init__.py: Use vi[0]

Change-Id: I4e96b41a8e548448449ef1622afe08c7f07b126f
Make http result callbacks rate limited

Change-Id: I1f6c735e042eec98ef9dd1584a1f140a1803376d
Only extract http meta if data is dict

Change-Id: I524fe6bde6d7e89f2e34124a466cb469a4539202
Async/Tx view interface

Change-Id: Ied7aaca4aa6c2adb0f931f698ad034031ade7e8c
Very very basic PyPy support

This commit adds some basic changes to the extension to allow basic
usage and compilation with PyPy. The pypy support is *STILL BUGGY* and
should not be used in production environments. However basic operations
seem to be working. Tests however, seem to still fail.

Change-Id: I17560cc49bc89dd18d46d03f3c6614b3e4e97a49
PyErr_Clear if GetAttr fails

Change-Id: Ic6d889e2918467997e64295e7f28e0548da1c1cd
Documentation for async interface

Change-Id: I940ac2765092e5e6918dcd7ed96195c84ef0e845