Simplify BuildOptions copy tests
drop support for defining options as a method

Conflicts:
	Library/Homebrew/formula.rb
delete a misfeature
move some behavior from BuildOptions into SoftwareSpec
remove mutation, we need to externalize this state
fix test setup to not mutate build instance
move management of options collection off of BuildOptions
remove unused accessor
pass the build object into the Tab

since the Tab is written in the build process, the build object from the
formula will have the correct args attached to it already
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