Uploader: emit specific failure code when firmware not found

This allows more explicit error codes to the user that this board
is not currently supported by the wizard.
BoardPlugin: advertise if board supports configuring a receiver input

Also this makes the SetupWizard use this information and bypass that
page if necessary.  There is a stub of the implementation in Sparky
so it enters this configuration page.
SetupWizard: apply receiver configuration via board plugin
Sparky: add methods to plugin for configuring input
SetupWizard: add documentation
SetupWizard: add page for when input configuration unsupported

This page will inform the user to manually configure the input before
proceeding for boards where it is not supported.  This is required
because without an input actuator uses a different path and cannot
be controlled.
SetupWizard: add page to indicate a board is unknown
Config: add Calibration object to aggregation
Config: fix formatting of file
SetupWizard: use calibration object to compute level
Calibration: fix doxygen header
SetupWizard: compare requested input to active input to reboot

Add stub to IBoardType to query the currently selected input type
and determine if the board should be rebooted.
Sparky: add method to query current input type
BiasCalibration: remove some comments
SetupWizard: normalize doxygen
SetupWizard: use IBoardType::InputType enum

Previously the SetupWizard had its own enum for the input type.
This then got mapped to the IBoardType value which was then
mapped to the specific hardware (in the board specific plugin).

It doesn't make a lot of sense to have basically two equivalent
enums, so now the setup wizard uses the board plugin enum.  The
opposite direction wouldn't make sense as we don't want to induce
a dependency of the setup wizard on the board plugins.