* Causes a bug in Formula#installed_alias_target_changed? when
Formula#superseds_an_installed_formula? returns true because
Formula#old_installed_formulae includes f for some Formula f.
* Causes a bug when foo@2.4 with alias foo has HEAD or devel version and
we try to `brew upgrade foo --devel|--HEAD` from stable. The upgrade fails
while since we installing formula to the same prefix it's alredy installed.
The reason for that is that we use
`formula_to_install = outdated.map(&:latest_formula)` in cmd/upgrade
before calling upgrade_formula on foo.
```ruby
def latest_formula
installed_alias_target_changed? ? current_installed_alias_target : self
end
```
Formula#installed_alias_target_changed? compares formulae using
Formula#==, which is wrong for this case, thus Formula#latest_formula doesn't
return self and returns Formula#current_installed_alias_target with spec
foo was initially installed instead of devel or HEAD, causing the error.