Unary operator precedence is now correct

-20 + 3 now gets parsed correctly as (-20) + 3

Earlier it was incorrectly parsed as -(20 + 3)

Also corrected one of the unit test cases.
added more test cases for numeric expressions
minor: used shorter expressions in tests
minor refactoring

Used a helper function instead of a long expression
added a complex unit test for numeric expr
Respect operator precedence while parsing

Parser now respects operator precedence

Added unit tests to check precedence.