Initial commit

Added makefile.
Added basic structure for main.
Added boilerplate init functions
Added git loading

In order to make the git loading less annoyingly written I added a
structure for commands.
Added git config loading to the git-big init phase
No error messages output outside of main
Added error string output

Conflicts:
	src/error.h
	src/main.c
Added proper error checking to init
Added database directory creation
Add filters on init
Massive cleanup

This isn't going to be complex enough to be split up as much as it was.
Lots of re-names and cleaning up how we handle variables:
	const whatever name = value;
	whatever name = empty_value;
Renamed initRun to commandInitRun
Copy-paste bug - filter is called big

This should really be fixed earlier, but the large re-structure is a
pain for that.
Added boilerplate for clean filter
Added boilerplate for the smudge filter
Added pattern file checks
Use pattern file check for git-big commands
Added the creation of .gitbig to git big init

This is required because otherwise the repo won't be treated as a
git-big repository. Not sure if this is the best way to do this,
possibly checking for the database directory would be better?
Added a requirements parameter for different commands

This allows us to specify things like pass-through commands in a
centralised way.
Added boilerplate functions to query and insert db data
Added clean filter code