Ensure we use a canonical `hw_id` format

This forces every input hw_id, regardless of format, into the current
"canonical" format: the mac addresses, in an (unreliably) sorted order,
concatenated, `:` removed, downcased.

While imperfect, this does give us a robust short term way to manage
hardware identification.  For the longer term we need to separate out
canonical input from the model objects themselves, and to manage the hardware
identifiers in a more robust fashion.

(eg: support using the DMI serial number, and non-Ethernet hardware, for more
 robust identification; support "subset of total network interfaces", etc.)

Signed-off-by: Daniel Pittman <daniel@rimspace.net>