added struct for URI representation

Advanced helper structure to URI representation, easy to parse/modify/construct URI strings.
That would have two drawbacks, though: All the getters would either also have to return `const(char)[]`, or would have to allocate using `.idup`, and any input validation/contracts could silently be broken afterwards by changing a possible mutable reference to the underlying string data.