Create `name` alias for `hw_id` on Node objects

This introduces a special case to the `node` data type: we return the `hw_id`,
the unique API primary key, when `name` is invoked.  This is kind of a hack,
to allow the generic view code to work with nodes as well as other objects.

In the longer term we need to figure out the right model for node naming, and
replace this with that -- or improve the view support -- but for now, it works
to get the demo running.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Implement the node collection

This implements the high level node collection, including validation that the
returned data is in the correct form.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Implement individual node details

This implements returning an individual node with full details, saving for the
log data attached to the object.  This returns only valid properties, and has
minimal tests that the bare-bones node (eg: only a hardware ID)
works correctly.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Implement, and test, "bound" nodes as well as unbound

This extends the testing performed on the node collection and details to
include "bound" nodes -- nodes that have an associated policy, and that have
been configured.

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