Simplified Roster

Removed some throw declarations from methods, so some try/catch blocks
could be removed.

Use switch/case instead of if/else if.

Make members final when possible.

Add logger statements in case of error IQ result and remove superfluous
check of instanceof IQ.
Make roster push and presence packet filter static final

Also remove the check of IQ.Type.SET in processPacket(). This is now
done with help of a PacketFilter.
Add log statements to Roster
Fix unfiledEntries not updating

If an roster push with a roster entry without any group is processed,
then the entry is not updated, because unfiledEntries.contains(entry)
would return true, as the RosterEntry.equals() method only compares the
name.

We simply fix it by always removing the entry first and then adding it
again.

Thanks to Christian Schudt for pointing this out.

SMACK-559
Synchronize bindingRequired

Right after PacketReader receives the 'success' stanza, indicating
successful SASL authentication, it opens a new stream. The login
process continues in another thread and checks for bindingRequired,
which may not have been set a this point yet.

bindResourceAndEstablishSession() now waits until either the binding
feature stanza is parsed or the default packet timeout occurs.
Properly sync PacketWriter's queue

by using a custom ArrayBlockingQueueWithShutdown. Fixes a race condition
where nextpacket() would wait for a notification that would never
arrive, because all all put(Packet) calls are still blocking.

SMACK-560
Make sendPacket throw NotConnectedException

also use XMPPConnection.sendPacket() instead of
PacketWriter.sendPacket() in XMPPTCPConnection.
Update javadoc for (get|set)CustomSSLContext()
Fix NPE in JavaxResolver

Attributes.get(String) could return 'null'. Take care of that case.
Move duplicate code into XMPPConnection

from XMPPTCPConnection and XMPPBOSHConnection.
Add newlines to smack-core/build.gradle
Don't make non-core packages a fragment bundle

as there exists no longer a dependency from smack (now smack-core) to
smackx (now mostly smack-extensions). Therefore this approach is no
longer needed.

SMACK-343
Fix appendix in smack-core

Now that we do not longer use the appendix for the subproject
name (91fd15) we need to set instead of appending the appendix in
smack-core.
Synchronize PacketWriter shutdown

try the best to send the queue elements and the closing stream element.
Fix NPE in DiscoverInfo.Identities XmlStringBuilder

The 'name' attribute of an service discovery identity is
optional. Thanks to Jens Offenbach for reporting.