Stable Networking: Keep the same network settings during the entire container lifecycle.

This change will allocate network settings (IP and public ports) at container creation rather than start and keep them throughout the lifetime of the container (i.e. until it gets destroyed) instead of discarding them when the container is stopped.

It will also restore network settings upon daemon restart in order to guarantee that IPs and ports will remain stable all the time (regardless of daemon restarts) and will prevent new containers from obtaining the same IPs or public ports.
Just curious why we need this public?