Block joins if the room's limit of participants was reached

Acts as a 'soft limit'. Blocks joins if the limit was already reached.
It works well but can't be considered a hard limit since multiple concurrent
joins might end up exceeding the limit.

(Code pulled and adapted from a private mconf-web fork.)

refs #1385