Hardware unit test

@icbat Here's that metaclassing I told you about. :) Lemme know what you think.

<!---
@huboard:{"order":1.5,"milestone_order":16,"custom_state":""}
-->

Good call. It's super easy, but I'll at that to the README, basically from any level in the project run `python -m unittest discover` and anything that matches the pattern test*.py will be attempted to be run