Adding a comment so that readers know what IMU stands for.  It appears
there is perhaps some non-IMU code in flight_imu.c and that IMU is too
broad a term to perhaps even name this file after.
Split PWM code into appropriate separate files - mapping, rx and output.

By decoupling everything the structures now only contain members they need.  The mapping code is simplified.  The calculation of timer periods is now where it belongs (with the output code, not with the mapping code).  Also, since each motor output has it's own callback method it is technically possible to mix brushed and brushless motors if the brushed motors and brushless motors use different timers.  Additional code would be required to fully support that.