Make SASLMechanism.getAuthenticationText() return byte[]

every SASL Mechanism is designed as a byte array based protocol. XMPP
adds the constraint that the challenges and responses are send base64
encoded. It's therefore better API design to let getAuthenticationText()
return byte[] instead of String.
Remove smack-core sasl configuration

bring every class of smack-core and its dependencies in
scope of smack-sasl-(javax|provided).
Move toBytes() into SASLMechanism

as it's a often needed transformation in the SASL world.
Create Jar artifact with test code
Allow null username (mainly for SASL EXTERNAL)

Signed-off-by: Daniele Ricci <daniele.athome@gmail.com>
Add SASL EXTERNAL mechanism

Signed-off-by: Daniele Ricci <daniele.athome@gmail.com>