adds Premove module - class representing a premove for both client and server
removes getCopy() from position assignment in Premove - getPosition()
methods should return a copy if things don't want it modified
adds getPromoteTo to Premove