Introduce credentials
Remote: add documentation for credentials
Update clone_repository's docs

It claims you need to checkout a branch after clone, which is not the
case currently (the clone function will do it for you).

While here, format the docstring for sphinx to make it pretty.
Add credentials support to clone_repository()
credentials: memory safety

The docs say to use tp_free() to free the memory, and even though we use
PyObject_Del() everywhere else, using this in the credentials does cause
issues.
credentials: use more ducks

Instead of making everyone inherit from our credential types, use an
interface with two attributes, which makes the C code much shorter and
simpler.
Merge remote-tracking branch 'carlos/credentials'
Always use new-style classes in Python 2