This is the first part of bug 1008029
If the port command does not contain a MAC address then Quantum will generate
a random MAC address. The mac address will be saved in the database to ensure
that it is not used by another port on the same network.
Added mock-based test for mac exhaustion.
Change-Id: I4d3fe12fd1e3c347b8e286d920a0609d0b3c4e8c