Fixes #9 - Implement Null Device

Added really basic Null device (Still missing most functionality
required even for a null device)

The infrastructure for Device classes is a bit more fleshed out, now.

There's a helper for creating static strings, the DevicePrivate
subclass selection is tightened up a bit and supports different styles
of constructing a Device, and most importantly the really basic unit
test implemented for the Null device passes, although it really is a
very simple test.
Merge pull request #9 from caitp/issue-9

Implement Null Device