Start Reorganization of NGram Classes

NGram is the superclass for IntervalNGram, and IntervalNGram is a renamed
version of the previous NGram class. I'm working toward issue #136.
Further Work with NGram

Still working toward issue #136. I refactored most of the IntervalNGram
class. I started working on the unit tests, but I realized that they're
going to require a lot of work, and decided to put it off.
Merge branch 'vis8' of github.com:crantila/vis into vis8

Conflicts:
	run_tests.py