Improve tokenizer to recognize and record token types
Create Value directly instead of through NewValue

Since NewValue had to guess the already known type