fix some basic bugs with logic to get ngrams, fixup tests to work correctly
Add final changes to make consumer read from an io.Reader interface instead of
a scanner
Fix more typos/bugs, improve clarity of error message for consumer test, add additional method to reader interface--not yet impl
fix up basic, naive demo program to use new io.Reader interfaces instead of scanner