WIP feature for handling invalid messages
Scenario fails because auction not shown as failed
Generate auction_failed event for invalid message
Add specs for notifying failure on missing fields

No need to change code to make them pass, as the use of Hash#fetch
instead of Hash#[] means exceptions get thrown anyway, which triggers
the event.
Add FAILED state, and show in UI
Verify bidding in non-failed auctions as normal

This is really a bit of a trick (as per the book) to make sure we've
definitely received the second event for the failed auction.
Temporarily comment out logging check
Extract private translator_for method
Rename add_event_listener to add_auction_event_listener
Not sure why that method call needed three lines
Add missing requires
Add chat disconnect listener

Refactored the Chat class so it retains a list of listeners and passes
messages to them, rather than registering the lsiteners directly.
Implement check for logging of bad messages
Implement LoggingXmppFailureReporter
Raise more useful exceptions for bad messages
Add chapter 19 tag link to readme