Fix Aggregate::Sum#default spec to kill mutation
Refactor Attribute#coerce to pass-through the message

* Remove hard-coded class name
Update Direction.coerce to handle non-attribute objects
Fix DirectionSet.coerce spec to kill mutation

* Refactor specs for Header.coerce to be consistent
Fix Projection#delete spec to kill mutation
Remove unnecessary coercion from Intersection #insert and #delete

* Since the other was being passed down to the left and right
  operand's methods it was unnecessary to do any kind of further
  coercion on the object.
Fix Restriction#insert spec to kill mutation
Fix Restriction#delete spec to kill mutation
Fix Order#insert spec to kill mutation
Fix Order#delete spec to kill mutation
Remove unnecessary coercion and rely on duck typing for inputs
Add TODO note for future refactoring
Refactor Attribute.name_from
Fix Attribute.name_from spec to kill mutation
Fix code to use more precise matcher to kill mutation
Fix Aggregate::Mean.call spec to kill mutation

* Remove unnecessary #to_f from method
Fix Attribute::Numeric#size spec to kill a mutation
Add specs for Attribute.new to ensure options are not frozen
Fix Summarization::Summaries#summarize_by spec to kill mutation
Fix Header#project spec to kill mutation