Make Uri an OrderedType and thus suitable for Maps and Sets

Comparator ordering by host, scheme, port, userinfo, path, query, and finally fragment. Designed to produce a reasonable sort order.

Opinions on this order?