Defensive programming for EdgeGatewayInterface

This is in effect input validation, so I feel is a temporary improvement
until we pull ConfigurationValidator into Core.

It's worthwhile having something in place whilst we wait for that though.