Add Gemfile to capture dependencies for the application

In development, just use it to install the gems we depend on for testing; this
is as normal.

For production, this may be used if we ever have non-core gem dependencies.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Documentation for the new EL MK Razor Client code

This updates the readme with various notes about the new MK client code, and
how it works.  The focus is on ensuring that folks can get some value out of
the system immediately, mostly to aide other developers.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
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>