grass: new style options

Closes #17044.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Define HOMEBREW_LIBRARY for tests
Clean up Tab creation
Move option comparison into BuildOptions
Options can be used interchangeably with Strings

We want to be able to use Option objects in place of strings and have
this be transparent. Defining to_str means that methods like
Kernel#system and Kernel#exec will be able to perform an implicit
conversion.
Update multi_json to 1.5.0
Options can be dumped as JSON
BuildOptions: simplify setting description
BuildOptions: check has_option? for universal and 32-bit
Return Option objects from used_options/unused_options