Make cpuload correct and more efficient for all configurations of NuttX

Currently cpuload assumes there are only 2 static threads - idle and init, this
is true only for "basic" config of NuttX, as there can be 3 more static threads:
paging, work0 and work1 - depending on config. In such cases cpuload
would mistake one of them for init (which in fact is always last), giving
incorrect results to "top"

Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com>
Clean up and compact the output to fit inside a 80 column display.

Bug fix:
- running/sleeping count

Plus:
- added task state
- show the idle task (to make the number of tasks match the reported number)
- convert some calc to floating point where it doesn't hurt performance (for clarity)
- accept 'q' (standard) and escape to exit the program
General cleanup based on the pull request from muggenhor
Reformatting.
First steps to supporting GPS
More changes.
Merge remote-tracking branch 'upstream/master' into hott_v2
Add some GPS data to telemetry message.
gpio_led app added
Implemented new led status proposal
New blink patterns for safety switch, removed GPS lock indicator
Use work_queue instead of thread
Hotfix: Wrong capitalization on header file name
Merge branch 'master' into gpio_led
Merge branch 'master' into new_led_status
Change the way modules are built so that object paths are relative and use vpath for locating sources (so source paths are also shorter).

Add some basic documentation for the build system files while we're at it.
Oops, left in some test code.
Tested with PX4FMU and PX4IO with GPS and arming
Fix ROMFS dependency scan, add a warning if ROMFS_ROOT appears to be empty.
Fixed led patterns to be up to the latest specs