Fix recursive deletion of dead symlinks, bad hash for mediawiki tests

Summary: - Mediawiki was redownloading every time because short hash !=== full hash :p
 - Redownloading was broken because getRealPath() returns false for a dead symlink - also, we were deleting the symlink targets, not the symlinks themselves.

Reviewed By: @JoelMarcey

Differential Revision: D1397616
Disallow ?mixed as a type hint.

Summary: Disallow ?mixed a a type hint. ?mixed is equivalent to mixed and so is redundant, and its use could lead people to become confused about the nullability of mixed.

Shipping this needs to wait until all the ?mixed are out of www. I removed them all once, but more were added.

Reviewed By: @jwatzman

Differential Revision: D1395363