Wheels follow ground with heightmaps

Also adds a `setHeading` method that can be used to simultaneously set the rover's heading and rotation, rather than making the scenario creator do both and keep them in sync.

@BrettASwift @kadst43  would you mind reviewing?
One size fits all solution: `newHeading = ( newHeading % 360 + 360 ) % 360`

The part in parentheses will take care of any negatives, but a positive will go over 360, so we modulus again to get the proper heading.