Failing test showing bug in option implementation

I think that it is deleting the options that cause the bug.
Since the options are defined at the class level deleting them
will remove them from the class.

This causes issues in a number of ways (all withing the same process)

- If you validate and object, assign an attribute to it then validate it
  again
- If you have two objects of the same type and they are validated then
  the second one will not see the deleted options
Explicitly validate and no longer delete options

- also update the error for options to include allow_blank (and any
  fututre options)
- remove option validation from the narrow responsibility
Move logic from filter to StripAttributes

- This keeps the strip logic in the StripAttributes module.
- We may want to extract this into its own file.
- The validate_options may want to be called from in there too but I
  think it would be better if that fails during app load.