Handle dPlayers better

- Don't try to parse as UUID unless it has a - (all valid UUIDs should
have this), thus preventing the need to throw an exception every time
- keep a list of player names for matches, so we don't have to hunt
through Bukkit's internal player junk every single time matches dPlayer
is called (which is /extremely/ often!)