Added an option to choose if commit message is prettified or not

Prettifing the message includes:
* Removing empty lines from the beginning and end.
* Removing trailing spaces from every line.
* Turning multiple consecutive empty lines between paragraphs into just one empty line.
* Ensuring the commit message ends with a newline.
* Removing every line starting with "#".

Note that this has nothing to do with the core.autocrlf option.
make SubmoduleCollection.GetEnumerator virtual

This is so it can be faked in unit tests.
meta fixture ensuring GetEnumerators are testable

fix other non-virtual GetEnumerators

the simplest thing that works

simpler still

when in Rome…
Make tests target non obsolete overloads
Refactored Repository.Clone with CloneOptions

Fix #536
Run mono with the --debug option

This tells mono to load the debug information and lets the unit testing
framework show stack traces with line numbers in them, which is quite
handy.
Allow notes retrieval by namespace and ObjectId

Might help scenarios like http://stackoverflow.com/questions/22468146/
Update libgit2 to 36a80fd

https://github.com/libgit2/libgit2/compare/65e9dc6...36a80fd
Bind git_remote_fetch()
Bind git_reference_remove()
Enable now passing test assertion
Split the lazy group of commit object as two groups
Make GitCloneOptions a struct to fix issue #635
BaseFixture: easy creation of a config-isolated repository

We should try to keep the user's configuration away from the tests as it
may affect what the code ends up doing. To that effect,
InitIsolatedRepository() returns a Repository with some dummy
configuration.

This includes moving the fetch tests over to this.
RefspecFixture: use the isolated repository
BaseFixture: allow passing options to the isolated repo

By default we still generate a config-isolated Repository, but if the
user passes their own options, we'll use that instead.
Enrich the merge base

1. Bind git_merge_base_many and git_merge_base_octopus
2. Drop git_merge_base
3. Introduce enumeration MergeBaseFindingStrategy
4. Refactor the test case
Enable now passing test assertions
Drop uninteresting information from Exception messages
Introduce default credentials

Abstract Credentials, providing UsernamePasswordCredentials
and DefaultCredentials.