fix files without extension cause exception

fix files without extension cause exception while loading scripts from script folder.
compensate for Player objects dynamic hashCode

CraftBukkit Player implementation's hashcode changes which makes it difficult to store in hash based collections. Added PlayerEntry, a wrapper that gives a constant hash and equals method based on the players unique id.

PlayerSet uses PlayerEntry internally.