BattMonitor: initial draft lib
Plane: integrate BattMonitor
AP_BattMonitor: minor cleanups

cleanup name to be multiplier not div ratio, and make 2 variables
non-static
Plane: auto-upgrade battery variables in EEPROM
SITL: added battery voltage and current

assume 3DR brick
AP_Battery: fixed parameter name and default voltage ratio

also setup SITL with right pins
BattMonitor: update comments and defaults
BattMonitor: add exhausted method

Current total calculations changed to use micros instead of millis for
improved accuracy
Removed unused pack_capacity accessor
Initialise private members
Plane: integrate BattMonitor exhausted method

BatteryMonitor object made static
Removed unused macros for battery voltage and current monitoring
Plane: remove test_battery from CLI
BattMonitor: bug fix for current_total_mah
Plane: batt curr and remaining should be int16
Copter: integrate BattMonitor
Rover: integrate BattMonitor
Copter: sent current as -1 to GCS when can't be monitored
Plane: sent current as -1 to GCS when can't be monitored
SITL: add SIM_BATT_VOLTAGE
AP_HAL_AVR_SITL: use SIM_BATT_VOLTAGE parameter
AutoTest: add copter battery failsafe test
AutoTest: enable battery monitoring by default