Prevent adding a gateway twice

Prevent adding an existing gateway.

The first three commits belong to #695 and #697, and should disappear once they get merged.

Fixes #692.
I'd rather leave copy in the template. Variable data lives in the controller, static text lives in the template. This makes it much easier to update and localize.