refactor char parser's cleaner, and move the char sub-type into a contained field
ditch unused tests
move some parser code around -- out of index, into libraries
couple of unit tests for full parser.  also update npm test script to look in test/ subdirectories