Added caching of hash names for Type objects.  Should speed up the
frequent hash operations on types.
Updates that stop LLVM files (.ll) from being recompiled if their source
files haven't changed.

Compiler speed has improved, but a further improvement is coming soon.
Files are redundantly parsed at present.
Primary merge
Added ASTGenericDeclaration to repository and fixed .gitignore files
causing it not to be included.
Another merge related commit
Merge remote-tracking branch 'upstream/master'
Final merge-related commit