Fix teleport for teleporting across worlds

The previous teleport function did not properly work when the destination was at a different world. Although the entity's world field was set to the destination world, the destination world was not notified of this new entity and so did not acknowledge its existence. This was because the entity was not added to the destination world's entityList, and other functions which were not called in the original teleport function.