Improves readability

1. createRoom: Splits room name and size declaration into new lines.
2. Adds _emitEvent function to Room module which abstracts guard logic and context/arg passing.
3. Adds tests to check correct events are emitted and that emitEvent passes the correct context and arguments.