Refactored API in TownJoinManager

Wrote additional unit tests for TownJoinManager