Refactor: Uri uses a de::Path to store the path of the URI
The Uri class no longer has to worry about path-related matters, cleaning up the implementation noticeably.
Note: The segments of the path can now be accessed in either the normal left-to-right or the reverse right-to-left order. Path::segment() uses the regular indices, and firstSegment() and lastSegment() likewise return the left-to-right first and last segments.
Path::reverseSegment() is used in the existing code to access the segments in reverse order.
Refactor: Uri uses a de::Path to store the path of the URI
The Uri class no longer has to worry about path-related matters,
cleaning up the implementation noticeably.
Note: The segments of the path can now be accessed in either the
normal left-to-right or the reverse right-to-left order.
Path::segment() uses the regular indices, and firstSegment() and
lastSegment() likewise return the left-to-right first and last segments.
Path::reverseSegment() is used in the existing code to access the
segments in reverse order.