Fix bug in addLineClass/removeLineClass

\b can match the inside of a class name (-).
Add 'precise' option to getTokenAt() and getStateBefore() that ignores possibly dirty line states