Added UriKind and String  error to UriParseComponent.ParserState.
UriKind was added so Relative Uri can be parsed by UriParseComponent.ParseComponents.
String error was added so a error can be returned when an invalid Uri is provided.
Added Unix and Windows file paths parsing.
Moved scheme delimiter parsing into own method.
Improved ParseHost of files and IpV6.
ParseQuery is now skipped if scheme does not support query.