Added a test to check that attributes are not being normalized twice in parse method – broken
Fixed broken parse method
Fixed typo
MUC: Fix compliance with XMPP spec on error; doesn't solve the actual error, but stops it being obfuscated by a different error.
MUC: Fix bug where the JIDs with capital letters were not being correctly downcased.  Instead of using the parameter jid, use the created JID class @jid for comparison.
Add option to allow timeout to be specified for Jabber::Stream#send, use in Jabber::SASL::DigestMD5#auth on initial send.

Emperical evidence of a hang with Openfire 3.6.4 at that point; since the callback code is extremely simple, it points to not receiving a stanza and therefore not triggering the ThreadBlock#wakeup or ThreadBlock#raise, which hits a (long) mutex timeout.  Instead, set a 1s timeout on that send getting a response, try that up to 3 times, otherwise quit with a timeout exception.
Make sure to open files in binary mode, in order to correctly transfer files on Windows.
fixed typo
Added X-Facebook-Platform SASL mechanism
Point Base64 to Ruby's implementation
MUCClient's opts[:history] now accepts false, or a fixnum to pass in the history/maxstanzas header
Merge pull-14 mironov / Attributes are normalized twice in parse method

commit '3504da147eb7490835d57b56686771d8470f5569'
Merge pull-17 ppgengler / A few bug fixes and one improvement

commit '1a480f40fa34c68f2ff807804a83f0dd01cf5737'
Merge pull-19 mbisha / Fixed file transfer file corruption on Windows

commit '67bff803480e49a39fdb058921bdcd5eccfd7fe0'
Merge pull-21 ronny / Fixed a typo in Jabber::MUC::MUCClient#send_affiliations

commit '13d41833fd3380ae28b58c561f39df5524a97efe'
Merge pull-25 ShogunPanda / X facebook platform

commit '795c6a98000d7c6cc3ee7225f1ff445c0c9ba5fe'
fix deprecation
refactor numeric history length patch
Swapping REXML SAX with Nokogiri SAX
Finish converting over to a nokogiri streamer.
We need to use ruby's non-blocking I/O to listen to the TCP stream and push the data to the Nokogiri SAX "PushParser" instead of a normal Parser, because otherwise we block inside of the Nokogiri C code while the GIL is locked.