Purify as much as possible

Now gdc (the version I have) can't compile this because it doesn't
support static module ctor to initialize immutable stuff. Oh well.
Use nicer alias syntax
Make one function nothrow
Add method to get relative part of a uri