wrap up initial TimeSpan deserialization support; lots of little error cases to handle, but the basics are complete; not super pleased with the string allocation that happens here though...
little bit of re-org before moving on