Add external and external url for consultations

Adding to edition, as consultations are editions and incase we need
these for other editions in the future.

Added a validation to ensure an external_url is present when external
is set
Form fields for the external URL and checkbox

also add basic url validation to the field
Better URL validator, use uri: true from now for validation

We've had instances where bad URLs have gotten through with the current
validations and caused outage, for example when social media links
started withwith http(s) but the link was not valid it took down an org
homepage.

Implement a better URL validator using Addressable (which is in the
gemfile anyway for govespeak), move it under app as validators in app/
are autoloaded.

Replaced all regex based URI checks.