Tidy up rotation handling and allow for unreliable orientation reporting from device