I think I figured out the problem...
This works:
julia> Pkg.add("WAV")
julia> Pkg.checkout("WAV")
julia> Pkg.pin("WAV")
julia> Pkg.free("WAV")
julia> Pkg.free("WAV")
julia> Pkg.rm("WAV")
My hypothesis: Since the master branch of WAV has changed since the last
release, the `Pkg.checkout` creates a local Git branch. The `Pkg.pin`
creates another (throw-away) local Git branch. Therefore, two `Pkg.free`
commands are needed to unlink the two branches.
I find this Julia `Pkg` command behavior unintuitive. The same `Pkg.free`
command is expected to undo either a `Pkg.checkout` or a `Pkg.pin`, even
when both have been executed. How would users know which one will be
freed? Would it be better to have separate `Pkg.unpin` and `Pkg.free`
commands to resolve this ambiguity? Has this already been resolved in
Julia v0.3.7 or v0.4.0?