Reworked join and leave.

Now using tour.joinable and tour.leaveable. Optimization pending.