SASL External Support

I had to implement client-side cert authentication for our product using XMPPFramework and needed external auth once the TLS connection is up and running.  I added a new authentication module to support this and it's working for me although there may be more work required.  I know that I'm missing authorization entity support in the case of multiple identities in the cert... but we're not using that so I didn't add it.  It should be really easy to add that though.