Define, and test, fetching the 'hardware ID' of the machine

This implements the classic Razor conception of a machine hardware ID, based
on the order of reported MAC addresses for network cards that happen to be
named like the default Linux convention for kernel-discovered Ethernet cards.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Implement the 'MK::Config' abstraction for fetching configuration

This hides the gory details of the configuration priority and parsing away
from the rest of the system.  It implements a simple case-insensitive keyed
hash-like interface to access configuration values.

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