Issue #9 implemented automatic dependencies

Used the -MM flag of g++ to automatically generate dependencies
for compilation units.

Some rules were eliminated as unnecessary in this update.

(cherry picked from commit 91b519b18da5db6e0d78afbf67795a65a3f5acc1)
Issue #9 fixup to .gitignore

Now that flex/bison are configured to output *.cpp files, we need
to update .gitignore to ignore these.

(cherry picked from commit e326cc903608c4fd5da21eb6319a8c2944d3f777)