url_validator raises InvalidUrl error when nil is given

This fixes "cryptic" errors that we were getting from Airbrake. If
anything goes wrong with #heuristic_parse it's perfectly fine to raise
InvalidUrl error and handle it.

```
Addressable::URI.heuristic_parse(nil) #=> nil
nil.path #=> NoMethodError
```
Merge pull request #814 from lonelyplanet/url_validator_fix

url_validator raises InvalidUrl error when nil is given
Add fragment caching to responsive layouts.

Cache key is built in 3 variants:
1) "#{__FILE__}" - when there is no dynamic content at all
2) "#{__FILE__}--#{local_assigns.map(&:to_s).join}" - when we pass some
control variables
3) same as 2 + Rizzo::COMMIT - it depends on data provided by helpers,
therefore it can't be invalidated by calculating view digest. It will be
invalidated on each commit.

I've added cache only to responsive layout, other left untouched.
update cache key for require_js_async
remove google analytics (missed in merge)