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
Properly handle `router.interface.create|delete` messages.
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 #134 from ryanpetrello/bug/handle-router-interface-events

Properly handle `router.interface.create|delete` messages.
Merge pull request #135 from dhellmann/ensure-all-public-addresses

Make sure external ports have all needed addresses
Don't silence config-at-boot failures.

This seemed liked a good idea when we were facing lots of reboot loops, but now
that things have calmed down, this log output is particularly useful for
troubleshooting bugs in the appliance API.