Rework Token to also save its position and length

The old Token enum has been changed to TokenType and Token is now
a struct which stores a TokenType, its position in the equation
string, and its length.

This has been done to prepare for a better error handling system
so the program will also print information about where in the input
the error occurred.

The tests still need to be reworked to work with the new Token.
Update tests to work with the new Token struct

Completely reworked the unit-tests to make them more specific and
to work with the new Token struct. The tests for the 'check_syntax'
still need to be improved though.
Fix bug where parser pushed ops in reverse order

The parser needs to push the ops from the op_stack onto the output
stack from the top to the bottum. However since push_all iterates
from the beginning, the elements in the op_stack need to be rever-
sed before the being transferred.
Remove redundant using statements from tests
Update to v0.3.3