Don't wait for heading information if it hasn't been requested

This fixes a bug we were seeing where the geolocator would always wait until the timeout is exceeded. This happens if you don't request heading information, and so the position data isn't delivered until the timeout.