refactor how replaces and shared exts are generated for php manifest
refactor how replaces and shared exts are generated for php manifest

instead of hard-coding the special casing of opcache, we load the real conf.d INIs, and compare the list of platform packages before and after

this will, in the next step, let us move the shared extensions from 'replace' to 'provide', or straight to their own packages - the 'shared' list under 'extra' now also contains version numbers

heroku/heroku-buildpack-php,emeth-/heroku-buildpack-php,heroku/heroku-buildpack-php,emeth-/heroku-buildpack-php,emeth-/heroku-buildpack-php,heroku/heroku-buildpack-php,heroku/heroku-buildpack-php,emeth-/heroku-buildpack-php