Add more test cases for character stream.
Introduce source position object.
Introduce token factory and include position into token.
Introduce getter for index.
Implement hash code and equals methods on position.