uavcan: break the link between poll fd indexes and controls

this linkage was fragile and makes it harder to add new orb
subscriptions to the uavcan code
uORB: added actuator_direct topic

this topic will be used to allow direct output of actuator values for
uavcan, bypassing the mixer.
uavcan: added support for actuator_direct ORB topic

this watches the actuator_direct topic and uses it to allow for direct
output of actuator values, bypassing the mixer
motor_test: prevent use of uninitialised test_motor orb handle

stack variables are not initialised to zero
uavcan: don't force motors to keep spinning at zero throttle

Forcing motors to keep spinning when armed should be a policy decision
up at the vehicle type level, not hard coded down in the ESC
driver. It isn't appropriate for fixed wing or ground vehicles for
example.

We could add an ioctl to enable "spin when armed" if just setting a
small value in the vehicle code is inconvenient
uavcan: prevent crash in ESC driver

passing in more than 8 actuators would crash the ESC driver. We need
to check again the array size of the _esc_status.esc, which is
CONNECTED_ESC_MAX
uavcan: handle all ESC output in one place

moving all the ESC output handling to one place allows the limits on
actuator values to apply to all types of inputs, and will make it
easier to expand "uavcan status" to show actuator values
uavcan: show ESC output values in uavcan status, and add arm/disarm

this makes "uavcan status" show the current output values, which is
useful for debugging. It also adds "uavcan arm" and "uavcan disarm"
commands, which are very useful for re-arming after a motor test.
uavcan: added add_poll_fd() helper function

this makes the code clearer and avoids repeated code