Provides a generic interface to an N-Gram language model. Also provides implementations of this interface and a factory for generating instances of these implementations.