CFFI: fix Cursor.putmulti()
CFFI: make Cursor be a context manager.
CFFI: remove all weakref use

This seems to be the final solution to the weakref performance problems
on CFFI: simply don't use them whatsoever. Now Cursor must be a context
manager, in order to ensure its .close() is called correctly.

At least user scripts will leak fast, so not using with: should be easy
to diagnose.
CFFI: inline remaining dependency management bits
CPython: Cursor.__enter__/Cursor.__exit__.