HardwarePool improvements.

Now it will be much easier to add support for new hardware component
types. This references #5.
Whitespace changes.
Made Component crash-safe.

This fixes #8.