Implement Respository.hashfile

This hashes the content of a file, without actually writing it to the
db.
Add tests for Repository.hashfile
Implement Repository.hash

This takes a string of arbitrary data (That may include null bytes) and
returns it's sha1 hash as though it were a blob, without actually
writing to the object db.
Add tests for hash
Added basic remote support

* new Repository methods implemented:
   * remotes to list all existing remotes
   * remote_create to create a new remote entry
* New Class Remote added
free remote pointer in deallocation
remote_create: instantiate object manually for efficiency
added remote 'origin' to testrepo.tar
moved remote tests to test_remote.py
added assertRaisesAssign test function
added functionality to rename remotes
added functionality to set remote urls
added remote fetchspec getter
added setter for remote fetchspec
removed duplicated GETSET entry in remote.c
added basic fetch()-method for remotes
added remote 'origin' to emptyrepo.tar
added tests for remote.fetch()
renamed remote_create() to create_remote()
Add _pygit2 constants for libgit2 version information.