Add gitignore, clean up makefile
Merge pull request #1 from mystor/gitignore-makefile

Add gitignore, clean up makefile
Switch from using malloc to calloc

In some places in the program, the ast nodes were not having their
left/right nodes set (as they were value nodes). However, as they were
malloced rather than calloced, the values of those left/right properties
were not always NULL, which broke copy_tree(struct Tree*) on some
computers.

This patch switches from using malloc to calloc, which avoids those
problems, at the cost of zeroing all data structures.

In the future, malloc could be used instead, but special effort should
be made to ensure that the ->left and ->right properties of nodes are
always set.
Merge pull request #2 from mystor/calloc

Switch from using malloc to calloc
simplify now can eval (+ NUM NUM)
broke up simplify into eval_node()
updated README
added is_defx; checks if x exists in or below current node
added total support for / and -