it works
Fix a bug. Adding the copyWithZone within the XMPPPresence. Now the copied object is a XMPPPresence instance.
copyWithZone added to XMPPIQ, XMPPMessage and XMPPPresence

Fixes #229
xmppRoster:didReceiveRosterPush: API

Sent when a Roster Push is received as specified in Section 2.1.6 of RFC 6121.
Initialize Variable

Fixes #231
registerWithElements:error API

Fixes #232
XEP-0045: added methods to XMPPMessage category to handle room subjects, have XMPPRoom check incoming messages for room subjects and use them to set the roomSubject property
XEP-0045 Code Clean Up
Bug Fix: Message value on XMPPRoomMessageCoreDataStorageObject is not saving on CoreDate
Bug Fix: Message value on XMPPRoomMessageHybridCoreDataStorageObject is not saving on CoreDate
missing newline at end of files added
1. Separated XMPPStream internal Extension into the XMPPStreamInternal.h, which could be called from XMPPFeature;
2. Moved asyncSocket write/read data into a wrapper method -[XMPPStream write/readData ...], in which a registeredStreamPreprocessor could do preprocess (eg, XMPPCompression could deflate / inflate data);
3. Added XMPPFeature into calling procedure for XMPPStream;
4. Added XMPPCompression feature, which applies to XEP-0138 Stream Compression
5. Added XMPPCompression support into DesktopXMPP and iPhoneXMPP projects
disabled verbose log ( for showing compression rate )
optimized deflation ( one pass, one allocaing buffer )
optimized inflation ( try one pass, one allocating buffer )
merge from master
should not have return a space to keep alive ....