Fix advance() for range

Don't allow advance to leave a range in a bad state.
adding ParseNumber to json parser

Tests to follow.
some tests for numeric json parsing
increase deps solving tries again

to 14 now.
ItRange improvements (RangeException and more)

- Calling front() when range is empty throws
- Advance now returns an int instead of bool
fixes given that ItRange::advance changed

-used to return a bool
- decode string had a bug that the previous commit found, we
were calling front() with an empty range and probably passing the test
when throwing the wrong exeception in line 17, probably c was garbage.
adding tests for ItRange changes

from last two commits