Eliminate test_bucket

Most of the behavior tested here is now tested elsewhere. Move the
remaining useful tests to better places.
wip: first pass at fixing validation

 - remove direct ivar accesses
 - remove set_instance_variable
 - remove validate_variable
 - introduce set_spec, validate_attributes, and determine_active_spec
 - add tests for attribute validation