rooms have names

join creates room with random name if none passed
join creates room with specified name if it doesn't exist