SMACK-419 PacketWriter: Only flush if queue is empty

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13565 b35dd754-fafc-0310-a699-88a17e54d16e
SMACK-417 If both PacketReader and PacketWriter fail at the same time, connectionClosedonError() is called two times

Refactored notifyConnectionError() and notifyReconnection() from PacketReader to XMPPConnection. Made PacketReader.done and PacketWriter.done volatile. Prevent duplicate connectionClosedonError() calls by making the method synchronzied and protected them with an enter guard: if (packetReader.done && packetWriter.done) return;

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13566 b35dd754-fafc-0310-a699-88a17e54d16e
Added isFullJID() helper in StringUtils

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13579 b35dd754-fafc-0310-a699-88a17e54d16e
SMACK-430 Re-activated code that throws an exception if createOutgoingFileTransfer() was called with a bare JID

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13580 b35dd754-fafc-0310-a699-88a17e54d16e
SMACK-384 Don't use a semaphore while waiting for PacketReader to be started.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13581 b35dd754-fafc-0310-a699-88a17e54d16e
SMACK-382 Prevent memory leak in AdHocCommandManager by only creating the Thread if it's actually needed

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@13582 b35dd754-fafc-0310-a699-88a17e54d16e