Fixed broken rule in Makefile
Merge branch 'master' into templatedListNodes
Strengthened AST class hierarchy

Made certain classes abstract to strengthen the hierarchy. Also fixed
unittest that was instantiating what became an abstract class in this
commit.
Updated .gitignore with a few extra things
Merge branch 'master' into templatedListNodes