[#858] Use metaclass for test_allrules instead of nose

Previously, we were using nose to dynamically generate tests for each
rule file.

That is now implemented with a metaclass, which removes the nose
dependency from the testing framework. It also means that the rule
tests can be called just like any other test, including calling
just one of the rule tests, e.g.:

devtest test_allrules.Test_AllRules.test_ruleworkflowforeach_r

Note that the "." in the rule file name has been replaced with an "_"
to play nicely with the unittest command line functionality.