add standalone-apahrs files derived from ardupilot project
standalone_apahrs: changes to get build working
standalone_apahrs: build
standalone_apahrs: import AP_HAL_SMACCM
AP_InertialSensor_MPU6000: fixed gyro, accel signs for SMACCM
standalone-apahrs: add AP_HAL_SMACCM to build as a library
standalone_apahrs: add c++.cpp
standalone_apahrs: AP_HAL_SMACCM builds, doesn't depend on usart
hwf4: version of the library without uart

* for integration with tower, where tower does use uart...
flight: port to use standalone_apahrs and hwf4-nouart

* build is super broken, of course.
* apmotors is just commented out because I don't want to
  add all that awful RC_Channel stuff to my build.
flight to use ivory bsp: work in progress, build borked

Current stopping point, I can't translate GCS.Transmit to work in terms of channel
writes instead of call_ usartWrite.

- in mavlink we use MavlinkWriteMacro to pass around the callback for performing
  the write action. (this wraps up a call to usartWrite or whatever, at the
  moment.)
  We also give a ModuleDef which packages up any dependencies the
  MavlinkWriteMacro may have.

- In tower, we have no way to say some external (to the Task context /
  tower_task_loop_ generated module) code uses an emitter/receiver/etc.
  We essentially need a method :: Node i p ModuleDef which packages up a
  'depends' on the loop code. (It will have to be a dependency by name (e.g.
  faked up to an empty package with the same name) rather than by value, because
  the value does not exist in that context.

- I wish the Ivory module system had a better way to audit faked up dependencies
  to procs and modules, because we often end up in this mess...
  we talked about a special "lazyProc" construct once along thses lines, we may
  need a lazyPackage as well... What would the semantics be?
smaccm-mavlink: generalize some types

* We can pass around a Ref to the tx sequence number, rather than a
  MemArea, due to the changes to addrOf a while back.

* beyond that: I think I just didn't understand the types well enough
  when I wrote this code the first time
smaccm-mavlink generator: packing function's type generalizes a bit
smaccm-mavlink: regenerate messages with type signature change
SMACCMPilot GCS Transmit: remove deprecated USART sender
SMACCMPilot GCS Transmit Task: redefined in terms of tower byte stream
SMACCMPilot main: fix the build
smaccmpilot: build stabilize app directly without intermediate libflight

* tower generates ISR handlers which, as weak symbols, need to be passed
  to the linker in objects rather than in libraries. So, we can't build
  tower code into an in intermediate library, we must build it into
  application code directly.

* may be time to refactor smaccmpilot into a separate tower app and tower
  compiler module, where the tower app is just library code. We'll worry
  about that separately.
disable external ardupilot code from the build

* we get all of the ardupilot components we need from the forked
  standalone_apahrs code in src/flight/.
smaccmpilot: rename Servos type to Motors

* servos is the name in mavlink, but otherwise there is no reason
  to follow it.