Added abstract superclass JUUTAttribute for all attributes.

Added methods to get the name of an attribute and if it is a SetUp or
TearDown attribute. Adjusted the test for the attributes.
Refactored the methods to properties and moved the up to JUUTAttribute
Used new attribute methods in TestClassReport
Refactored the enum ReportRange to a class to replace conditional with
polymorphism
Moved the tests for the attributes into seperated unit tests.
Introduced a system to move the validation of a member to the attributes.