merged create_reference and create_reference_symbolic and added force-Option

To be more pythonic: merged methods create_reference and create_reference_symbolic
and added force-Option. To make a new symbolic reference you have provide symbolic=True
as an additional parameter. If force=True references will although be overridden.
Otherwise an exception is raised if the references exists.

Examples:

  # normal reference
    repo.create_reference('refs/heads/foo', repo.head.hex)

  # override reference with new value
    repo.create_reference('refs/heads/foo', repo.head.hex, force=True)

  # symbolic reference
    repo.create_reference('refs/tags/foo', 'refs/heads/master', symbolic = True)
use latest development of libgit2 - changed GitError to ValueError

For already existing references a ValueError is raised (see sry/pygit2/error.c:41)
 - add option flags for tree.diff
 - add a testcase test_diff_tree_opts
 - update testrepo.git
 - update existing testcases
added Repository.is_detached

A repository's HEAD is detached when it points directly to a commit instead of branch.
You can use repo.is_detached to check this.
Added empty test repository
added in Repository: is_empty, is_bare, head_is_orphaned and head_is_detached
added Index_remove
Merge branch 'master' into head_is_detached
Merge branch 'master' into create_reference_refactoring
removed unused variable in repository.c
Merge remote-tracking branch 'upstream/master' into diff_opts
Fix memory leak reported by valgrind
Fix: uncomment a commented line
Fix memleak + refcount issues
Fix: "The opt variable is not used in the loop"
Fix issue reported by Travis for Python3.1 and Python3.2
Merge remote-tracking branch 'delanne/diff_opts'
Fix the issue reported by Jdavid 'Here you are freeing the path and then you use it.'
Merge remote-tracking branch 'delanne/memleak'
style: remove tabs and trailing white-space