add value to the required_attributes method

* also write tests for it.
Add tests for required_attr; clean up spec directory
Further cleanup
switch rspec format to 'progress'
Add `optional_attr/optional_attrs` methods