GCS Control: Make SDL optional

To compile with SDL joystick input support compile GCS with
make GCS_QMAKE_OPTS="CONFIG+=SDL" -j7 gcs
GCS Control: Remove commented code
Fix for excluding SDL
GCS Controller: Add an option to control via GCS Receiver instead
GCS Control: Update the GCS Receiver object
GCS: Also exclude sdlgamepad library when unused
SDL: Mask out more includes
SDL: Only copy the dll when used
GCS: Fix typo for optional SDL
Merge branch 'next' into gcs_control
PathAlgorithm: create an abstract algorithm to run on paths

This can be used for both validating paths and also optimizing
paths.
PathFilet: create an algorithm stub for fileting a path
PathFileting: copy fileting code from flight firmware

Needs a lot of adapting to run within the FlightDataModel
architecture of the PathPlanner.
Path Filleting: code now compiles, probably still buggy
Path Fillet: fix spelling.
Path Fillet: apply update once complete
Path Filleting: connect this processing to a button
Filleting: debugging
FlightDataModel::replaceData: fix bug copying over mode

getData by default returns in the user friendly readable representation
which for mode is not the value to use for setting.
OPMapLib: remove old debugging output