implement  artifact
update a few cask to use `binary` artifact

This is obviously not an exhaustive list. I have included it in
the branch to demonstrate the new feature.