Add free-flight to DragonTravel

The movement code is rough but usually works. It has not been tested in an enclosed environment.

One of its goals is to make sure you don't run into mountains, which is what the bounceMove() method is for.