Memoize @normalized_fragment

In the case where a fragment is present but empty (e.g. "http://example.com#"),
the normalized_fragment method returns nil, so it can't be memoized with ||=.
This patch fixes this problem, so the @normalized_fragment instance variable is
only ever assigned once, even when the method returns nil. This was causing an
issue with frozen Addressable::URI (see https://github.com/sferik/t/issues/197).