fix#274, fix#270, fix#268, fix#265fix#261, fix#257, fix#256, fix#251
The guts of the url are moved into a private
implementation detail which can be accessed
by various parts. Rules that the user doesn't
need are made private, and the public rfc
rules use the well defined types.
Paths is still remaining to be done.