Support token position attributes in lexer

Also change endFilePos semantics to refer to the last character that
is *included* in the token, rather than one past the last character.
This ensures that all end* attributes have the same semantics.
Update lexer docs for attribute options
Add test for attribute assignment by parser

Weird that this wasn't tested yet...