HAL_PX4: added a (disabled) trick for handling blocking ttyACM0

this doesn't work yet, but is worth having for debugging
Copter: added shell command in CLI test menu
Rover: added shell command in CLI test menu
HAL_PX4: fixed blocking bulk writes to UARTs

this fixes a problem with uBlox initialisation on PX4
AP_GPS: fixed uBlox Debug() macro
Copter: only allow entering the CLI within 30 seconds of start-up
Copter: disarm motors when entering CLI
HAL_PX4: remove the need for the fmu_only flag file
HAL_PX4: create APM/boot.log on SD card

useful for debugging
Copter: only allow CLI within 20s of startup and when motors not armed
Rover: change CLI timeout to 20s
Plane: change CLI timeout to 20s
GCS_MAVLink: added comm_is_idle() function

this will make CLI detection more reliable
Copter: only enter CLI is link is idle when 3 enters are hit

this will prevent binary contents of RADIO packets being interpreted
as CLI enter line-feeds
Plane: only enter CLI is link is idle when 3 enters are hit
    
this will prevent binary contents of RADIO packets being interpreted
as CLI enter line-feeds
Rover: only enter CLI is link is idle when 3 enters are hit
    
this will prevent binary contents of RADIO packets being interpreted
as CLI enter line-feeds
Copter: fixed GPS test (detection of uBlox needs 10Hz poll)
Plane: fixed GPS test (detection of uBlox needs 10Hz poll)
Rover: fixed GPS test (detection of uBlox needs 10Hz poll)
Rover: put obstacle detection in a structure

easier to extend for multiple sonars