Added Chrome 'keyIdentifier' support to the DL3 shim, since old versions of Chrome and PhantomJS still need it, plus changed how we decide which shim is used so that we have a special rule for PhantomJS, and so that if no shims are applicable then we throw an error.