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 with an enter guard:

if (packetReader.done && packetWriter.done) return;

Conflicts:
	source/org/jivesoftware/smack/XMPPConnection.java