Re-organize files by topic

Keil project not updated, I have no way to verify it.

Note, mw.c, drv_pwm.c and drv_system.c contain code for too many topics.
Later commits will relocate the code as appropriate.

Not even looked at utils yet.  'Utils' is a bad naming practice and is a
synonym for 'too lazy to find the right file/name'.
Re-order files in makefile alphabetically
Use slightly flatter directory structure since some developers did not
like too many folders.
Extracted code from some files into separate files to fit with the new
layout.
Merge remote-tracking branch 'multiwii/master'

Conflicts:
	obj/baseflight.hex
	src/sensors.c
Updating accgyro files so they do not include "board.h".  It is now
clear what all accgyro drivers need to compile and what was
unnecessarily included before.
Merge remote-tracking branch 'multiwii/master' into
project-structure-alternative

Conflicts:
	src/sensors.c
Fix typo in filename.
Move FY90q acc/gyro code to accgyro_fy90q.c.  Update ADC drivers so they
do not include "board.h". It is now clear what all ADC drivers need to
compile and what was unnecessarily included before.

Note: FY90Q make target now compiles successfully, it was broken for
various reasons before.
Update altimeter drivers so they do not include "board.h". It is now
clear what all altimeter drivers need to compile and what was
unnecessarily included before.

Moved some platform specific configuration from board.h into platform.h
Update i2c/spi drivers so they do not include "board.h". It is now clear
what all i2c/spi drivers need to compile and what was unnecessarily
included
before.

Renamed printf_config.h into build_config.h, move SOFT_I2C toggle switch
to build_config.h.
Update compass drivers so they do not include "board.h". It is now clear
what all compass drivers need to compile and what was unnecessarily
included before.

LED macros now moved into light_led.h
Update gpio/ledring drivers so they do not include "board.h". It is now
clear what all gpio/ledring drivers need to compile and what was
unnecessarily included before.
 
In attempting this it was clear that ledring had a dependency on the
multiwii code, this was removed by passing the led status update method
the values it needs.

It also turned out that the ROLL/PITCH defines were coming from
rc_alias_e and much unrelated code is coupled to these defines.  This
commit also includes some cleanups relating to that problem.
Update pwm drivers so they do not include "board.h". It is now clear
what all pwm drivers need to compile and what was unnecessarily included
before.
Update serial drivers so they do not include "board.h". It is now clear
what all serial drivers need to compile and what was unnecessarily
included before.
Update system/beeper drivers so they do not include "board.h". It is now
clear what all system/beeper drivers need to compile and what was
unnecessarily included before.

Extracted system beeper code to a separate file.
Update sonar drivers so they do not include "board.h". It is now
clear what all sonar drivers need to compile and what was
unnecessarily included before.
Update timer drivers so they do not include "board.h". It is now
clear what all timer drivers need to compile and what was
unnecessarily included before.
Relocated used code from board.h into appropriate headers, deleted
unused code.
De-couple battery code.

This fixes a bug where buzzerFreq could be uninitialised before it's
use.
This improves performance by only checking whether to sound the battery
alarm after the battery voltage has been recalculated.
There were unused battery beep codes which have been deleted to save
code size.
Configuration structure extracted from mw.h into config.h.
Moved mixer configuration structures into flight_mixer.h.
Added a build_config.c in order to decouple pwm_common.h from config.h.
Finally, battery configuration values now live in a batteryConfig
structure which means that battery.c does not depend on config.h and all
of it's dependencies.

Fixed the use of plurals on defines that were not collection objects.
PIDITEMS and CHECKBOXITEMS are now PID_ITEM_COUNT and
CHECKBOX_ITEM_COUNT.
Fixing FY90Q build.  Cleanup of printf support and initialisation.
Remove duplicate inclusion of math.h in board.h.