GreenDBConnection no longer assumes that arguments are kwargs

Previous this code assumed that almost all arguments would be passed
as kwargs. Now the code also handles ``timeout`` occurring in
``*args``. This is needed because on PyPy's sqlite module, they are
passed in ``*args``.

Change-Id: I7ce25e7b262c6f46680e3f0eb391094de8051946
Fixed DB test cases on PyPy

They weren't working because of the intersection between some monkey
patching in the tests and the fact that ``sqlite3.Connection`` and
``Cursor`` are Python classes on PyPy, but C-extension classes on
CPython. The result was that trying to call the superclass's init
didn't work because the name ``sqlite3.Connection`` pointed to a
different class that wasn't actually the real superclass of
``GreenDBConnection``. Using ``super`` fixes this because the method
called is now always the real superclass's.

Change-Id: Ib45b16c7499883e560877788f13285d0a47cc2cd
Add option to return disk usage report with byte suffix.

Disk usage is currently returned as bytes. This patch adds the option
to return the value with a more human-friendly suffix, eg. MB/GB/TB/PB.

Change-Id: I3d55181f7e6085e711bd6e09ea2ce0a12b290cc5
Merge "GreenDBConnection no longer assumes that arguments are kwargs"
Merge "Add option to return disk usage report with byte suffix."
Remove ssync iter_hook usage

Apparently that disappeared and now the whole thing does on its own what this
was trying to achieve.

Change-Id: If20016cb80c855e3e8373de5d56926ef8f8e7dac
Merge "Fixed DB test cases on PyPy"
Merge "Remove ssync iter_hook usage"