Change server entity List to Map to facilitate entity removal

also fixes a bug where I forget how to use ArrayList.contains() and the
server's idea of entity location is never correct