Update Proof.java

Implemented printQueue as a LinkedList (which implements the Queue interface), and thus the "print" function. X (input) is added to printQueue after every run of extendProof().

Changed HashMap parameters to <String,Expression>, so that it may work for names in TheoremSet. This required changing all of the arguments to facts.put(), so take in ln.toString() instead of ln.

Implemented toString(), which isn't necessary with our current implementation of "print", but we could use it if we wanted to.