Refactors Makefile

This is adding some basic knowlege of how Make works to the Makefile.
The previous Makefile would actually fail to make almost every time. I
tested it on a special case where everything looked like it was working
right. Six hours alone with the GNU Make guide later and things are
different.
Fixes another make inconsistency

Running `make` would succeed the first time but fail for all subsequent
runs. This was due to the way that the manifest of marktab srcs was
generated. The makefile was using a simple wildcard to grab all the *.c
files in the src/ directory. A problem arose once make had already been
run. The flex and bison steps added two *.c files to the src/ directory.
This caused the wildcard to pick those up the second time through and,
subsequently, add them to the final gcc line twice.
Simplify .gitignore

The rule for ignoring the /bin directory covers ignoring all generated
binaries.
Reorganizes tests

Tests are split into two categories now:

Integration: RComp

More or less a last line of sanity checks, RComp tests are now located
in the spec/rcomp directory. All submodule bullshit is removed,
massively simplifying the build process.

Unit: Clar (eventually Rawr...foreshadowing)

Marktab needs unit tests...bad. Clar is the library used to unit test
libgit2. The only real downside is that it adds Python as another
dependency and the entire script has to be copied directly into the
project. Until Rawr is finished, this will have to do.
Adds notes in the lexer and project header