Refactor cinnamon-settings code to make categories load dynamically,
and allow easy adding and removal of categories.

Also added a Hardware category.