In almost every case that we use VerifyUserRoom, we want to both verify that the user is in the room and that the room that the user is in is open.  As a result, I altered the VerifyUserRoom to take a mustBeOpen parameter like VerifyRoom, where it can throw an InvalidOperationException when the room isn't open.

I made this change to keep things more DRY so that I didn't have to keep repeating the exception in each command that verified that the user was in a room (but cared that the room that the user was in wasn't open anymore).

It seemed neater to do this than to call VerifyRoom immediately after or before VerifyUserRoom in the commands, because they have some other overlap in functionality.