brew-test-bot: don't use stash --all; too new.
brew-fetch: remove MD5 output.
grads 2.0.2
valgrind: Use SHA-1 for 3.6.1.
brew-mirror-check: Not using MD5 any more.
manpage: remove outdated MD5 references.
brew-test: use SHA-1 in all testballs.
We use formulae as the plural of formula.
Add tmux warning for launchctl caveats.

References #13951.
brew-cleanup: don't whine about permission denied.

Closes #14359.
qt5: make keg_only due to qt conflict.

References #16471.
References #16921.
Allow depending on requirement class or instance.
ruby: use opt_prefix in caveats

The gem's bindir is available in the opt_prefix; use
that instead of the Cellar location in the caveat.

Closes #17315.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
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.
Options can be dumped as JSON
BuildOptions: simplify setting description
BuildOptions: check has_option? for universal and 32-bit
Refactor option handling internals

Currently we handle options in several ways, and it is hard to remember
what code needs an option string ("--foo"), what needs only the name
("foo") and what needs an Option object.

Now that Option objects can act as strings and be converted to JSON, we
can start using them instead of passing around strings between Formula
objects, Tab objects, and ARGV-style arrays.

The Options class is a special collection that can be queried for the
inclusion of options in any form: '--foo', 'foo', or Option.new("foo").