Re-implement ghcWithPackagesOld as a variant of ghcWithPackages that ignores collisions.

This change is intended to fix <https://github.com/NixOS/nixpkgs/issues/1161>
and to address some of the concerns that come up during the discussion of
<https://github.com/NixOS/nixpkgs/commit/d64917ad17277b8e16893ee31533ec2e33446fa7>.