ffmpeg: add --enable-avresample

This option was on by default in previous versions.

Fixes #17004.
Fixes #16348.
gource: fix configure on OS X

Fixes #15808.
QEMU: critical bugfix for semaphore fallback code.

Closes #17041.

Signed-off-by: Austin Seipp <mad.one@gmail.com>
Closes #17041.

Signed-off-by: Adam Vandenberg <flangy@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.
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
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").
Move BuildOptions to a separate file
Tests for BuildOptions
Make Formula#installed? more idiomatic
Tab#with? to mirror BuildOptions#with?

Eventually a common interface could be factored out into a module, but
for now this will suffice.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Formula#recursive_dependencies

This behaves like recursive_deps, but the resulting list consists of
Dependency objects instead of Formula objects. The list maintains the
installable order property of recursive_deps.

While in the area, add some comments clarifying the purpose of related
methods.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Dependency#to_formula and associated helpers

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
FormulaInstaller: factor out requirement checking

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
FormulaInstaller: factor out dependency installation

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
FormulaInstaller: skip build-time deps for bottles

Signed-off-by: Jack Nagel <jacknagel@gmail.com>