PYCBC-103: Pure C API Rewrite

Change-Id: Ib71a9cd7bdf28c1d29daa0188ad2d66be38bca66
Reviewed-on: http://review.couchbase.org/26234
Tested-by: Mordechai Nunberg <mnunberg@haskalah.org>
Reviewed-by: Pavel Paulau <pavel.paulau@gmail.com>
Reviewed-by: Mordechai Nunberg <mnunberg@haskalah.org>
PYCBC-107: Support dict_keys

Change-Id: Id1968d3e536ffb00603c40792c136f6c8250994f
Reviewed-on: http://review.couchbase.org/26276
Tested-by: Mordechai Nunberg <mnunberg@haskalah.org>
Reviewed-by: Mordechai Nunberg <mnunberg@haskalah.org>
PYCBC-61: Get-And-Lock (and unlock)

Change-Id: I994f3b0c8c277bfb368bf688faae040fc8e94c79
Reviewed-on: http://review.couchbase.org/26277
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Tested-by: Mordechai Nunberg <mnunberg@haskalah.org>
PYCBC-106: Expose server list

Change-Id: Icf0b466e088315d9b95fe10e8a5ed15c3dbe35af
Reviewed-on: http://review.couchbase.org/26281
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Reviewed-by: Mordechai Nunberg <mnunberg@haskalah.org>
Tested-by: Mordechai Nunberg <mnunberg@haskalah.org>
PYCBC-112: Ensure objects can be pretty printed

This also adds several other tests which check the types of various
operations

Change-Id: Ib9b1280b4ecace5ac92fad9dd2c9a3b6e93c0747
Reviewed-on: http://review.couchbase.org/26329
Reviewed-by: Mordechai Nunberg <mnunberg@haskalah.org>
Tested-by: Mordechai Nunberg <mnunberg@haskalah.org>
Refactor result types into subclasses

Change-Id: Ib6c2c72b7cad1e69552e9e21d3f5b7a91fbc08e2
PYCBC-100: Couchbase Apache Copyrights

Change-Id: I76581c337b5df9aab203431f25eac6ab92631318
Specify the value as bytes for bench example

Change-Id: Iaecd99f096b9316c5f82392cf63ec1776eab1054
PYCBC-110: Document C internals API

Change-Id: I1409ebf1378d43988b72744fedb04c713d461d52
PYCBC-111: Fix leak on bad arguments

Change-Id: I43e5ed18641985b5af2bd0f8f022e53818d20c0b
Allow option to skip slow tests

Change-Id: Id2e07dd8b68cee407e4e3154c3787712ac60ce2f
Fix some more leaks

- Took recommendations from a static analyzer, cpychecker (gcc-python)
- Fixed leaked reference via PyIter_Next()
- As a result, refactored the sequence_next() function to always return
  a new reference (it INCREFs on list/tuple/dict)
Change-Id: Ic430be0993a6cfbe17026f14696c1bdc05c7ec7b
Refactor tests to use generated keys

Wrapping a key generation function lets us expand things in the future,
such as providing an option to delete keys before they are used, or
allowing separate prefixes so tests can execute in parallel.

Change-Id: Id3b8362fde9720988f2f3816c18f91048306f342
Rename tests.ini to tests.ini.sample

This allows modifications to the actual test configuration file without
having git complain about it.

Change-Id: I54a0bfb7f5629a4a3b4d220ffe3d1d37c4342448
Convert constructor arg handling to xmacros

This makes it simpler to add/remove/change arguments in the future

Change-Id: I3a8f6d792e7e6c9a9855aca524441e7e89c6280b
PYCBC-114: Internal HTTP wrappers

This provides basic wrappers around lcb's make_http_request, as well as
exposes the administrative handle API. Currently this is not
documented as the API may change.

Change-Id: Ibd084de2b7b56ac0eb09b8c5d62e09cc1e273ecc
Some more fixes in sequence functions

Initialize dictpos to 0, if it's a dict
Return -1 if PyDict_Next returns < 1

Change-Id: Ied5af0048b02a4a397b9f70679658f9f4c256a1b
Throw ArgumentError when dict is passed to get

To be more precise, we accept dicts for get, but values must be integers
which are TTLs (i.e. touch)

Change-Id: I8d5f7ab07885f2450c7e5a65fb96262cc696400a
PYCBC-108: Pass ascii=false to json.dumps

Change-Id: If1b1cb8d9824461628865101ab8ffeac4a7b8ded
PYCBC-115: Add touch command

Change-Id: Ia41c3b4e38f9c90a9ad33bef4ec3f6cfdc437888