More state cleanup in BaseField, alphabetizing

Finishing off what @tamird started in #205.

Alphabetize all methods in BaseField.

Rather than deleting values out of the options hash, reference the hash
from predicate functions.

Rename `getter_method_name` and `setter_method_name` to simpler
`getter` and `setter`.

Remove the excess options warning since we are generating all field
definitions.
Do you think there's a problem if `Struct` does indeed inherit from `BasicObject`?