added struct for URI representation

Advanced helper structure to URI representation, easy to parse/modify/construct URI strings.
Actually, I'm not sure `defaultPort()` should be part of the interface. It's nice to have, but it's not related to the URI in itself, more to the scheme itself (the fact that you had to import std.socket and allocate a new service rings a bell).