allow for keyword args in init_repository

This implements five ways to init a repo:

    import pygit2 as git
    git.init_repository("/tmp/foo/")
    git.init_repository("/tmp/foo/", True)
    git.init_repository("/tmp/foo/", False)
    git.init_repository("/tmp/foo/", bare=True)
    git.init_repository("/tmp/foo/", bare=False)

Since one is still able to pass the bare as a positional argument, this change
is perfectly backwards compatible. All existing code will continue to work.
tests for keyword arg init_repository
document new ways to init a repo
fix syntax hightlighting in docs

When using comments in a pycon session, comments must be prefixed with standard
console prompt (>>>) for pygments syntax highlighting to work.
refactor the blob example
Fix build after latest changes in libgit2
Merge remote-tracking branch 'esc/feature/init_repository_keywordargs'
Merge remote-tracking branch 'esc/docs/fix_syntax_highlight'
Coding style

Including:

- Lines longer than 79 chars
- Spaces at the end of line
- Wrong indentation
- Comma not followed by an space
- C++ style comments: //
Update copyright
Now we have a Repository class written in Python
_pygit2.init_repository doesn't use keyword args
diff - use old fashioned iterators instead of callback based ones
memory allocation helper macros
diff - use new memory alloc macros
added assertAll and assertAny for test cases
diff - use generator instead of list
added test data for diff.find_similiar
fixed assert for diff.find_similiar test
pep8 fixes for setup.py

as reported by flake8