drop support for defining options as a method

Conflicts:
	Library/Homebrew/formula.rb
move some behavior from BuildOptions into SoftwareSpec
fix test setup to not mutate build instance
move management of options collection off of BuildOptions
remove mutation, we need to externalize this state
remove args writer
delegate options to the active spec
hide the options data structure better
update callers
rm as_flags from BuildOptions
rm empty? from BuildOptions
BuildOptions is no longer Enumerable
rm the options reader
BuildOptions is now immutable so no need to deep dup
make has_option? private
remove default argument