Refactored TownJoinManager to make method names less clumsy

Added unit tests for TownJoinManager