+ Added a RequiredSet validate() method that leverages the RequiredComponent.validate() method
+ Reworked RequiredComponent to be an abstract class instead of an interface
- one super validate() method that can be overridden in the subclasses if necessary