[r=blake-rouse][bug=1555679,1564657][author=mpontillo] Fix bugs #1555679 and #1564657.
* Only physical interfaces (and sometimes bonds) will now be matched
by MAC address. For other interface types, it is legal for duplicates
to be found. (though it will now be logged as a warning)
* Removed a poorly-tested warning message which could sometimes trigger
in incorrect situations.
* Fix signal handling for interface save to avoid infinite recursion.
(Note: indirectly tested by rack interface update tests, since
without it, infinite recursion is seen in the tests.)
* Fix MAC validation to consider all ancestors and successors, rather
than just immediate family.
* Remove tests for bonds and bridges "moving with MAC address" (they are
now recreated if renamed, since it's not possible to uniquely identify
a bond or bridge by MAC).
* Add tests for multiple bridges with the same MAC as their parents.