Make sure external ports have all needed addresses

When creating an external port, make sure that it is given both v4 and
v6 IP addresses if necessary.

DHC-1944

Change-Id: If2eb3477a1890e0035fa0ccced451cd890315d28
move logic for building MissingIPAllocation msg to class

Move the logic for building the message for MissingIPAllocation
exceptions into the exception class and simplify it.

Change-Id: I61453cbaa466f40984bdf80420c182d6332f2583
Merge pull request #135 from dhellmann/ensure-all-public-addresses

Make sure external ports have all needed addresses