Add a custom type/provider to manage homebrew

This allows us to require a minimum revision of homebrew, like so:

```puppet
homebrew_repo { '/opt/boxen/homebrew':
  min_revision => 'd34db33f',
}
```
Require a minimum homebrew revision

This revision is one that provides some functionality that
puppet-homebrew is going to need soon, so I chose it as the first rev to
depend on.
only run 'brew update' if your platform is Darwin
Merge pull request #43 from gorsuch/darwin-only

Only run 'brew update' if your platform is Darwin
Raise unless we're running in Boxen
You can't test for resources with underscores :(
Remove debug output
Merge remote-tracking branch 'refs/remotes/origin/master' into manage-homebrew-revision

Conflicts:
	manifests/repo.pp
Merge pull request #42 from boxen/manage-homebrew-revision

Manage homebrew revision
Handle minimum revisions which we haven't fetched

`git rev-list` returns a non-zero exit status if its asked about
a ref that it can't find (logically). We need to handle this case,
since the minimum revision specified may not have been fetched
from the remote yet.
Merge pull request #44 from boxen/handle-missing-revisions

Handle minimum revisions which we haven't fetched
Hook instead of monkeypatching bottles.

Make use of the new Homebrew bottle hooks module added in
https://github.com/Homebrew/homebrew/pull/27890 to make the Boxen
bottle handling more robust. Long-term we/you should really move to
using proper Homebrew bottles (with checksums and SSL) but this should
at least stop things getting broken periodically.

I'm aware this may be somewhat controversial so I'm open to other
approaches.
Update Homebrew organization location.

Homebrew has moved to an organization rather than being on mxcl's
GitHub account. This won't change anything at runtime but is just nicer
for future use.
Merge pull request #39 from mikemcquaid/homebrew-monkeypatching-cleanup

Cleanup monkeypatching bottles.
Merge pull request #45 from mikemcquaid/homebrew-org

Update Homebrew organization location.
Homebrew's tap directory naming has changed

It's now Library/Taps/${user}/homebrew-${repo}
Require homebrew with new taps directory convention

For 1db7ffa
Merge pull request #46 from boxen/use-new-tap-directory

Support new tap directory naming convention
Ensure the parent tap directory exists too
Merge remote-tracking branch 'upstream/master'

Conflicts:
	files/boxen-monkeypatches.rb