Change from \k-based keywords to \w-based. Slim down regexes&restart

- The code got too complicated and was getting too difficult to elicit
  the desired behavior.  Decided to slim it down and start over and add
  on new behaviors more slowly.
Fix bug: w,b,ge don't work across newlines or when on \W\W
Remove commented out code/stale comments
Major refactoring. Redesign implementation based off a grammar.

- The old implementation was too hackish, I was just updating regexes to
  try and fix one small bug rather than addressing the core of the
  problem.
- Start over and make the regexes adhere to a grammar to search for the
  next "word"
- Big improvement was separating out zero_width_separators (the space
  between CamelCase words) from unit_width_separators (whitespace and
  underscores). The logic was jumbled together before but has been
  separated a bit more cleanly now.
Rename NextKeyword() functions to NextWordChar()

- The idea of a keyword doesn't make as much sense after the refactoring
  to focus on a grammar and what constittues a word vs symbol vs
  separator.