Make Camel's SASL framework more extensible.
Gather SASL mechanism names by traversing subclasses of CamelSasl
instead of hard-coding all known mechanism names. This allows
mechanisms to be added from outside of libcamel.
This adds a CamelServiceAuthType pointer to CamelSaslClass, which
changes the ABI. Statically registered subclasses can just point to a
static CamelServiceAuthType struct. Dynamically registered subclasses
should allocate a CamelServiceAuthType struct in their base_init class
method and free it in their base_finalize class method.
Adapt CamelSasl subclasses to the new approach.