Add new Git::Repository to isolate usage of Git, in preparation for eventual libgit2 support.
Add #status and #commit to Repository.
Use repository status to check whether any uncommitted changes exist, --force option will override.
Check if a file is binary before attempting to merge it.
Add Name#header_guard for convenience.
Add pre-set context substitutions for better standardisation.
Bump version.