perf(Request): Use partition in lieu of split

In the range property, use string.partition instead of string.split, since
the latter executes slightly faster. Also improve error handling of invalid
range specifications.