p.208: keep AuctionSniper list in SniperPortfolio to remove notToBeGCd

In order to avoid dead lock, change sequence of ApplicationRunner.startSniper
p.215: add end-to-end test: sniper loses an auction when the price is too high
p.216: add stop price field to ui
pp.217-218: enable to pass the stop price from user interface to UserRequestListener

change to pass Item object to UserRequestListener.joinAuction instead of String
pp.219-220: pass end-to-end test: sniper loses an auction when the price is too high

make AuctionSniper to use Item object
pp.224-225: add end-to-end test: sniper reports invalid auction message and stops responding to events
pp.225-226: add auction event: failed

AuctionMessageTranslator handles invalid message as failed.
p.226: handle error when field missing in message body
p.227: make to AuctionSniper to handle auctionFailed event
fix typo
pp.228-229: disconnect chat when auction failed
pp.229-230: implement end-to-end test method: ApplicationRunner.reportsInvalidMessage
pp.230-231: implements auction failure reporting mechanism to AuctionMessageTranslater
p.230: implements logging reporter
fix bug: auction2 has not been disconnected
p.233: pass end-to-end test: sniper loses an auction when the price is too high

make XMPPAuctionHouse to pass failure reporter to XMPPAuction created by XMPPAuctionHouse.