minor cleanup
removed LMGrammarJava.java, collapsed AbstractLM, also did more cleanup
Added object for tracking KenLM state
tabs --> spaces
collapsed confusing functions called from a single place
removed comments
added toArray()
removed old params
reverted to class-based invocation (instead of jar) for ease of development in eclipse
(1) Folded state computers into feature functions and (2) generalized feature function interface

Regarding (2), features no longer define both

  float computeCost()
  FeatureFunction computeFeatures()

Instead, they define only compute(), which takes a new accumulator object that accumulates
values in the style required (save just the cost or the result) and returns them to the
caller in the desired fashion.

Regarding (1), we no longer have separate state computers. Stateful features now know how to
compute their own state. State can't be shared across, say, LMs this way, but it saves us
making two passes across the rules, one for state computation, and one for score computation.
compute() for a feature function returns the state, and the accumulated value is stored as
an object passed to it for retrieval afterwards.
can safely compute final costs for all feature types
now printing DP states in extended derivation output
bug fix in computation of LM state
updated test case (floating point errors)
added back in phrase-score caching, which cuts runtime for both grammar types by 50--75%
updated feature function inline docs
removed useless cruft
added stub to create KenLMFF instead of LanguageModelFF for KenLMs
added class for state/prob pair, removed (wrong) stub code from LanguageModelFF
added a short note about what to do