Fixed change nickname may cause occupants duplicated issue

User A joined chatroom, then user B joined chatroom. If user A changed his nickname, it may cause duplicated occupants.
Merge pull request #384 from kaojohnny/dev

Fixed change nickname may cause occupants duplicated issue
Merging latest changes from CocoaAsyncSocket project (GCDAsyncSocket compiler warnings fixed)
Adding a few missing methods to the NSXMLElement category.
Fixing a few compiler warnings in the sample project
Merge branch 'master' of github.com:robbiehanson/XMPPFramework
XEP-0280: Message Carbons
Fixed Some of the Test Projects
Bug fix: XMPPStream was not honoring modified presence stanzas via xmppStream:willSendPresence:. This only affected delegates that made copies of the passed presence element, or returned completely different presence elements.
Bug fix: XMPPStream wasn't invoking delegate method xmppStream:didFailToSendX: in all situations.
Adding 2 methods to XMPPModule: didActivate & didDeactivate. These methods are easier (and simpler) for subclasses to override, compared to the original activate & deactivate methods.
Merge branch 'master' of github.com:robbiehanson/XMPPFramework
Adding delegate method to XMPPStream to detect a "clean" disconnect (stream sent closing </stream:stream> stanza)
Adding ability for XMPPStream to handle custom stanzas (non iq, message, presence), along with corresponding delegate methods.
Minor alteration to new API within XMPPModule. (changing method: didDeactivate -> willDeactivate)
Adding method to XMPPStream: getNumberOfBytesSent:numberOfBytesReceived: (simple atomic operation to fetch 2 related properties at the same time). Also updated XMPPBandwidthMonitor to use the new method.
Added a warning log statement if one attempts to set an invalid whitespace character.
Fixed typos