Fix url validator

Calagator currently has an [event up](http://calagator.org/events/1250466668) with a broken link in the "Website" field. The url validator allowed an invalid url of the form `example.com, http://example.com/` to be persisted, because the string contains `http`. Fixed by adding a `^` to the validator regex. Tests for valid/invalid urls are included.
This might be a bit pedantic, but in general you want to use `\A` and `\Z` in validation regexen, instead of `^` and `$`, because the former matches the boundaries of the entire string, while the latter matches the boundaries of any line within the string. So someone could still get around the validation by including arbitrary content, then a new line, then a valid url. FWIW.