fixed line_origin in Hunks

every line in a hunk has a origin like '+','-' or ' '.
refactoring Tree.diff() into seperate methods

* Tree.diff_to_tree()
* Tree.diff_to_workdir()
* Tree.diff-to_index()
added reorder trees possibility for diff_to_tree()
Added: Repository.diff() - porcelain method similiar to
Refactored Index.diff() into Index.diff_to_tree()/diff_to_workdir()
Added: documentation for Tree.diff_*-Methods
Merge remote-tracking branch 'upstream/master' into features/diff_refactoring

Conflicts:
	src/tree.c
use git_tree_owner in Index_diff_to_tree()
Fixed: documentation for diff_*()-Methods
Added: Missing CONSTANTS for GIT_DIFF_*
Added: support for context_lines and interhunk_lines for diffs
Refactored: get rid of type check for treeish_to_tree in Diff
Merge remote-tracking branch 'upstream/master' into features/diff_refactoring
Fixed: remove OrderedDict for compability reasons (python2.6)
Fixed: Use GIT_DIFF_NORMAL as default flag for Diff
Removed: unnecessary PyObject in tree.c
Fixed: Memleak in diff_get_patch_byindex()

There was a memleak because of a missing Py_DECREF. Thanks to @delanne
Fixed: Memleak in Repository_config__get__()

There was a memleak because of a missing Py_INCREF() for self->config. We need 2 Py_INCREF() here
because one is returned and one is kept internally. Thanks @delanne for reporting and providing
the patch.
Removed: unused variables in tree.c (thanks @delanne)
Merge pull request #229 from cholin/features/diff_refactoring

refactoring Tree.diff(), Index.diff() into seperate methods and added a Repository.diff() method.