Localisation observation and RobotModel state changes

Change vision observations to be in spherical coordinates relative
to the ground, and change the RobotModel to represent heading as
a bearing instead of a unit vector.
Merge branch 'develop' of github.com:nubots/NUClearPort into develop

Conflicts:
	modules/localisation/MMKFRobotLocalisation/src/RobotModel.cpp