Fixes player joining game before being kicked for whitelist/ban/full ORIGINALLY #518

ORIGINALLY PR #518

This PR fixes issue #510, and #156, as well as touches on issues addressed in PR #373 about errors when not on a server whitelist.

The PR moves the method calls that send the join packet to the player from the constructor to a seperate method, and then calls that method once the player has been confirmed, and the PlayerLoginEvent has not been disallowed.

The creation of the InventoryMonitor is necessary in order to prevent errors with pulse.