PKCS#11 URI and system configuration fixes

These patches make engine_pkcs11 accept key/cert specifications in the form of a PKCS#11 URI as described at https://tools.ietf.org/html/draft-pechanec-pkcs11uri-16

There is also a patch to make it automatically load p11-kit-proxy.so as its PKCS#11 provider instead of just failing if none is specified. This has the effect of making it Just Work™ with the system configuration for which modules should be present.

These are both important standardisation efforts to make PKCS#11 more usable on the desktop. We really need provider modules to be able to automatically install themselves with the system, and a consistent way of specifying objects within PKCS#11 tokens. Which is what we get from p11-kit, and the PKCS#11 URI, respectively.

Note that the first patch doesn't add a dependency on p11-kit libraries; it *only* uses pkg-config to determine the location of the p11-kit-proxy.so provider module — which loads all the providers which are registered in the system configuration, into slots of itself.