Merge remote-tracking branch 'upstream/next'
INS: allow a default mag value for indoor mode

Since we do not perform navigation in this mode, requiring
a GPS to get the HomeLocation or manually setting it is not
necessary. Also, forcing people to set it in the map is
bad because that saves by default - and then they might
get in the field with a very incorrect home location.
PID: do not set integral to zero when Ki is zero

This was done in the PID library but is not appropriate there. The
altitude hold code uses the integral term to apply the throttle
bias. If the integral is wanted to be zero, we should set the ILim
to zero.
AltitudeHold: use antiwindup code for the integral component

This ends up not really making a practical difference as the
throttle doesn't hit the limits for long.
VtolFollower: make sure to preload integral for throttle correctly

Since this is the integral for the down command, need to use
the negative of the throttle.
pid: update copyright header
GCS:main fixes the redraw of the spashscreen on some systems
GCS:connectionmanager make device a smart pointer to prevent crashes

Conflicts:
	ground/gcs/src/plugins/coreplugin/connectionmanager.h
WMM: do not use memory allocation

Conflicts:
	flight/Modules/GPS/GPS.c
Attitude: calculation the HomeLocation and WMM here

Since the attitude module has the most stack space, it makes
sense to calculate the WMM here.
GPS: remove calculation of HomeLocation
Manual: reduce stack size
Sparky: heap critical level now 750
GPS: increase stack size to 850
WMM: fix indentation
SanityCheck: do not allow flying autonomously in indoor mode

This configuration is unsafe since position will always read
zeros.
SanityCheck: make this compile on COPTERCONTROL
SanityCheck: do not allow navigation in "raw" filter

In principle this can be done. In practice, it doesn't verify the
quality of the GPS lock and hasn't been tested, so should be
disabled by default.
Attitude: add NONE navigation filter

We previously tried to use a RAW mode for the GPS to pass directly
for navigation, but this could also be confounded with situations
when you didn't want GPS. This created an ambiguous situation and
prevented us performing sufficient safety checks.

Now the user either expressly selects "NONE" for no navigation, and
if they attempt it there is an error.

If they select RAW and there is no valid GPS signal, it will also
set an error.
Attitude: handle NOHOME case for setting errors