Narrow down the Definition::Attribute::* API

By exposing #processor, #default_value and #definitions only where they
make sense in the inheritance tree, we can nuke memoization in favor of
setting things up in #initialize.

Also set the default values for the :processor and :default_value
options in OptionBuilder instead of leaving this job for Attribute
itself.
Simplify Attribute::Primitive::OptionBuilder