Support for CKC_OPENPGP + Dynamic alternative to d_type

FIRST PATCH: Support for CKC_OPENPGP, public key blobs to use SoftHSM under OpenPGP

This introduces CKC_OPENPGP as a case of CKC_VENDOR_DEFINED, with an unlikely-to-clash value that other vendors should be able to replicate on their HSMs.  The spec is close to CKC_X_509 but accurate details can be found on http://openfortress.nl/doc/spec/pgp-in-pkcs11/

Note 1.
I did not add test code, but I've used it successfully on my own system.  Let me know if you require test code, and what it should do -- and where to put it.

Note 2.
I did not find code to test which attributes could change when, so I did not modify any of that.  Please point me to such code if I missed it; the details are slightly different from CKC_X_509 as per the specification.  Notably, PGP public key blobs change over their life whereas X.509 certificates are static.

SECOND PATCH: A dynamic alternative to d_type (in support of user file systems)

This resolves an issue that I had with d_type.  Even though Linux defines _DIRENT_HAVE_D_TYPE it turns out that not all filesystem set readdir() output's d_type to one of DT_REG or DT_DIR.  I ran into this with ZFS on Linux, but would not be surprised if the problem is more widespread in (user) file systems on Linux.  In general, d_type dependency is warned against as a potential portability issue.
So I've changed the static alternative for undefined _DIRENT_HAVE_D_TYPE into a dynamic fallback, thus making sure that the alternative is used on such hampered file systems.
The alternative to this patch was not finding any tokens.  I confirmed that this is the case when the variable pushed was initialised to true, effectively blocking the dynamic alternative code.  Then, corring the variable to false initialisation, I established that tokens were actually found.