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](https://github.com/sferik/addressable/commit/67e36a4c7f406b874281037b3454d2cfd19ddc44) 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).

I also took the liberty of upgrading to RSpec 3 and fixing the build.

I hope you’ll find a moment to release this fix during your adventures in Tanzania.

Cheers! :beers: