Support for NPLM (experimental)

This pushes various changes to allow ucam tools to compile together with
nplm, wrapped by kenlm.

To enable NPLM, you need define in Makefile.inc* three new variables:
NPLM_INCLUDE, NPLM_LIB and EIGEN_INCLUDE.

*** This is an experimental feature, largely untested.
I have compiled it with EIGEN library 3.1.4 and NPLM 0.1 modified
by Ken Heafield (i.e. https://github.com/kpu/nplm).

All ucam tools loading a language model *should* be able to
load and use an NNPLM model.

A few changes to the language model loading and the on-the-fly
composition were needed to get this to compile. This is because
the NPLM Model class constructor and State class are different to
those of standard KenLM.
Added NPLM tests for applylm and hifst

*** This is an experimental feature in hifst/applylm, largely untested!
- These tests use inferno.nnlm file in NPLM package to assess
  that the ucam tools don't crash and score the lattices. ;)
- Regression tests can now be skipped (with echo 2). i.e.  NPLM not enabled, then these tests are skipped.
- Also, add NPLM lib dependency in tests, if available.
Merge pull request #21 from ucam-smt/support-for-nplm

Support for NPLM (experimental)