[C] Improvements to Player lookup - Resolves BUKKIT-4608

The Issue:
Player lookup is done very ineffeciently by iterating all online players and doing a name comparison. This results in reduced performance on larger servers.

PR Breakdown:
This PR will maintain a ConcurrentHashMap along side the current COWArrayList. PlayerList.getPlayer and PlayerList.processLogin was updated to use this map based lookup.

Craft methods that also did iteration based lookups are now also using this map.

JIRA Ticket:
https://bukkit.atlassian.net/browse/BUKKIT-4608