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>
Checkpoint: implement new state machine, compiling, WIP
Checkpoint: Added arming state check
Checkpoint, arming/disarming still has a bug
Checkpoint: Added DESCENT state
Merge remote-tracking branch 'upstream/master' into new_state_machine
Merge branch 'px4io-i2c' into new_state_machine

Conflicts:
	apps/uORB/topics/vehicle_status.h
Checkpoint: Arming/Disarming works
Checkpoint: Added HIL state, arming/disarming works now, also from GQC
Checkpoint: New hierarchical states
Checkpoint: navigation state machine as discussed with Lorenz
Checkpoint: Added arming check function
Checkpoint: Added flag checks inside arming state update
Checkpoint: Added flag checks inside navigation state update
Checkpoint: Added switch handling
Checkpoint: Navigation states and arming seem to work
Merge remote-tracking branch 'upstream/px4io-i2c' into new_state_machine
Checkpoint: Separated all bools in vehicle status into conditions and flags, they should be protected
Checkpoint: Added control flags
Merge remote-tracking branch 'upstream/master' into new_state_machine