Now the grammar optimization transformation removes unproductive productions.
Started subword parser.  For now it only verifies if the grammar respects the
parsing algorithm restrictions.
Minor improvement in grammar optimization: remove unproductive productions
may allow further optimization inside the fixed-point loop.
Refactored goto table of ParsingTable.
Refactored action table of ParsingTable.
Implemented ParsingTable.statesReachedBy() for nonterminals.
Implemented ParsingTable.statesReachedBy() for terminals.
Generalized class Parser.  Now Parser is an abstract class and ParserNormal
implements the details of a normal parser.  This will make way for the subword
parser.
Implemented getInitialConfigurations() for ParserSubwords.
Further generalized Parser to be able to implement the subwords parser.
Handled one more case of the subword parser reduction.
Fixed bug in the getInitialConfigurations() of the subword parser where the
initial state pushed onto the stack was wrong.

This bug was introduced in bff697b88ab80a6ab05bcaec7de3f93afba3059b.
Implemented last case of subword parser redution.
Now gluon uses the subword parser.  This is not working properly yet.
Merge branch 'master' into subword-parser.

Conflicts:
	src/gluon/AnalysisMain.java
	src/gluon/analysis/programBehavior/ClassBehaviorAnalysis.java
	src/gluon/analysis/programBehavior/WholeProgramBehaviorAnalysis.java
	src/gluon/contract/Contract.java
	src/gluon/parsing/parser/Parser.java
	src/gluon/parsing/parsingTable/ParsingTable.java
Fixed bugs in the subword parser.  It is not yet fully functional since it
doesn't seem to explore all the possible branches.
Finally the subword parser seems to be working.
Added timer for the completeRemainingReductions() method of the subword parser.
Refactored code of the subword parser reduce().
Merge branch 'subword-parser'.