New plugin interface, capable of optional formats (eg. depending on autoconf results or OpenSSL version)

Needs further testing before merge. One possible issue *might* be systems that don't allow wildcard input to the preprocessor.