Slight refactoring of RelationalSeriveInfo and UriInfo

This allows for extending RelationalServiceInfo when using URIs that don't conform to the expectations of UriInfo.

In particular, the URIs I need to work with don't like like this: `scheme://[user@password]location`, but rather: `scheme://location;user=name;password=secret;attr1=param1;attr2=param2`, so they need to be parsed differently to what UriInfo can handle.

Let me know if you think there's a better approach to this...