Make build_bottle an explicit installer mode
Make build_from_source an explicit installer mode
install: explicitly pass used options to the installer
Make bottle implementation more generic
Reduce the number of things that trigger ARGV.build_from_source?

The newly generalized bottle implementation removes the need to
defensively check for --devel, --HEAD, and others in this method.
Remove some obsoleted hacks from the installer
Remove used options check from install_bottle?

This is now handled by requiring that options are always passed to the
installer explicitly.
Wrap cellar compatibility check in a method
Inline install_bottle? logic into the installer
Make force_bottle an explicit installer mode
Update info command for generalized bottle implementation
Update fetch command for generalized bottle implementation
Update bottle command for generalized bottle implementation
Update --cache command for generalized bottle implementation
New patch implementation and DSL

This commit introduces a new patch implementation that supports
checksums and caching.

Patches are declared in blocks:

  patch do
    url ...
    sha1 ...
  end

A strip level of -p1 is assumed. It can be overridden using a symbol
argument:

  patch :p0 do
    url ...
    sha1 ...
  end

Patches can be declared in stable, devel, and head blocks. This form is
preferred over using conditionals.

  stable do
    # ...

    patch do
      url ...
      sha1 ...
    end
  end

Embedded (__END__) patches are declared like so:

  patch :DATA
  patch :p0, :DATA

Patches can also be embedded by passing a string. This makes it possible
to provide multiple embedded patches while making only some of them
conditional.

  patch :p0, "..."
Enable new patch implementation with compatibility layer
Teach fetch to download patches
Teach audit about new patches implementation