Program, ParserImpl update

Removed the constructor for ParserImpl as per piazza instructions.
Implemented parse(Reader r). We'll iron out details on how to handle
incorrect syntax.

The start of an implementation for Program. An ArrayList<Rule> is what
I'm thinking right now; calling add() on the list appends to the end
which might be helpful if we're adding on multiple Rules in the order
they appear to the Program. Basically, keep adding Rule objects to the
list until you finish parsing the program.