Prevent hashCode check with FakePlayer GameProfile's that contain a null id.

GameProfile javadocs specify either an ID or name can be null/empty yet it
uses the ID in its hashCode method. To workaround this issue, I now search
for a matching gameprofile in HashMap, without causing a hashCode check, and
create a new FakePlayer if no match is found.