Miscellaneous fixes

Hi,

I need to make some changes to the download strategies in Homebrew in order to make implementing some new features possible. The strategy classes have evolved a fairly unconstrained API over the years, so as you can imagine, knowing what is safe to change is difficult.

To that end, I am trying to get a feel for how these classes are being used outside of Homebrew core, and hopefully I am able to point out where things can be done in a different/simpler way.

I will leave some comments in the diff explaining the changes.

Thanks!
One thing I should add - now that this method returns the actual path, Homebrew will emit a "Cannot verify integrity of \<path>" warning when it downloads the file.

I would like to add a way to opt-out of this explicitly in a formula, but I need to get everyone using a consistent API first.