weighted PathPredict testing
convert directed graph to use std::vector instead of std::unordered_map (save memory)
tweaking path predict settings
start writing language model again
change how beginning of sentence is estimated (simpler)
add perplexity measure
fix some bugs in LM
change template class to non-template class
Modularize CMakeLists.txt.

This is still a work in progress, but the bulk of the work is done now.
This change moves standalone executables into tools/ subdirectories of the
libraries they are for, and makes our build system consist of many
CMakeLists.txt files. This should make things easier to follow, at least
locally.
Fix compilation with gcc.
Update cmake version for travis-ci builds.
Update cmake version one further for travis-ci.
Try a different PPA for travis-ci cmake.
Update cpptoml dependency.

We can now use an include_subdirectory() and link_library() to inherit the
compiler checks (and include paths) in the cpptoml repository without
having to re-write them ourselves.

This change requires CMake 3.0.0 or greater.
Attempt to update Travis-CI for CMake 3.0.0
Trying a different ppa for Travis-CI CMake3 dep.
Attempt manual install of binary package for travis-ci CMake 3.0.1
Try again to get travis-ci to install CMake 3.0.1
Fix travis-ci CMake 3 install.
add std:: to abs call