experimental/multiple-versions-in-one-file

This patch introduces mergeAttrsByVersion to lib.

In some cases it does make sense to keep "experimental" and "older" versions of
the same package in one file because it follows the "do it once only" principle.
Very often many versions share their build instructions - so even though I
understand Eelcos opinion that different versions should be put into their own
.nix files - its my feeling telling me that this is fastest for most cases.

I agree with Eelco that if tweaks for individual versions become too much they
should be split into individual files.

See comments above mergeAttrsByVersion learn about its usage.

Signed-off-by: Marc Weber <marco-oweber@gmx.de>
TopGit-driven merge of branches:

master
experimental/multiple-versions-in-one-file
experimental/multiple-versions-in-one-file

purpose:
  PHP: fpm support (including patches for systemd socket activation)
  nixos systemd unit implementation
  keep old PHP-5.2 working even though its horrible outdated.

keep everything in one file, because most code is the same, eg the code to build
extensions (apc, xdebug, ..)

Signed-off-by: Marc Weber <marco-oweber@gmx.de>