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":""}
-->

Nope, that's basically it. I got from your comments and the structure how it was going to work, but I was unfamiliar witth the `__metaclass__` so I didn't know how all that magically tied together.