Change URL path parsing to use ranges instead of string substitution
Changed scheme parse to match all characters before '://'
Changed host URL parse to use ranges instead string substitution.
Handle missing scheme
Handle missing query
Moved URLEncode next TBURLParse
Handle more parts of URL correctly. (Still missing ability to encode query string)
Added more test coverage for new parsing and encoding features.
Simplified encoding paths and query strings.
Added new tests for url encoding.  This probably accepts malformed query strings, but it encodes them without a problem.