Parted / Joined robot triggers

I wanted my bots to be able to do stuff when they join / leave rooms, my idea is to provide simple events for handlers to listen to. What do you think?

Changes:
- Added adapter triggering robot events for joining and parting rooms
- Changed #run to use the adapter #join instead of connector join_rooms directly (so events get triggered)
- Changed #shutdown to call #part on each room before shutting down
- Changed #rooms visibility to public (may be unnecessary but i wanted to be able to access rooms from events in handlers)
- Specs refactors / fixes

Regards,
Darkside.
JS-style hash syntax is preferred (`room: room_id`).