Get rid of allocfmt()

It is not possible to know how we can free the results of this
allocation, so we shouldn't be using this function.

We have a convention of returning Oid objects in pygit2, so let's keep
to that in these places.
Make the GPL exception explicit in setup.py 

I think that is best to have that explicitly set there (and it should possibly be updated in Pypi too).
Thanks for this lib!
Cordially
Philippe
setup: minor cleanup
Introduce RemoteCollection

This lets us look up remotes by name, which is not possible by just
returning the list of remotes.

Move remote creation to Repostiory.remotes.create() and keep the old
Repository.create_remote() for compatibility, delegating to this new
way.

Existing code should keep working, but this moves us towards what we'd
need for a better interface in 0.22 which makes remote renaming and
deleting work with a name rather than an instance and would make sense
to exist as part of an Remote.remotes object.
Merge remote-tracking branch 'carlos/remote-collection'
wip migrate to 0.22