bcmxcp: add ups.load and battery.voltage.low

Adapted slightly for bcmxcp branch (original patch was against master). Bump
driver version to 0.28 as well. (clepple)

Reference: http://article.gmane.org/gmane.comp.monitoring.nut.devel/6460
bcmxcp: indentation fixes (no code changes)
bcmxcp: Fix method name outputted in debug message

Reference: http://article.gmane.org/gmane.comp.monitoring.nut.devel/6458

Whitespace was addressed in previous commit (clepple)
bcmxcp: cosmetic: make changes by Prachi Gandhi more coherent with rest of driver
bcmxcp: use command map if supplied.

If UPS supplies command map, use it to control what commands we register with
dstate_addcmd. If UPS does not supply command map, we register default commands
with dstate_addcmd
bcmxcp: Return more specific error codes from instcmd

Use the available STAT_INSTCMD_FAILED and STAT_INSTCMD_INVALID as return value
from the instcmd method when applicable, instead of always returning STAT_INSTCMD_UNKNOWN or -1.
bcmxcp: report upsdrv_comm_good at successful execution of instcmd
bcmxcp: Let upsdrv_shutdown call instcmd for shutting down

To avoid code duplication between upsdrv_shutdown and instcmd, let the upsdrv_shutdown method
first try to issue a shutdown.return instcmd, and then proceed with shutdown.stayoff if the
shutdown.return failed. This seems to be in line with what the usbhid driver does.
bcmxcp: Fix outlet number for outlet.x.shutdown.return if more than 2 outlets
bcmxcp: Define byte for choosing which system test to run in header file
bcmxcp: Use one fuction to decode command execution status in all places

To avoid duplicating the logic which checks the status of command execution at UPS,
add a new function which contains the check, and use that function whenever we
send a command to UPS and get status back from UPS.
bcmxcp: Add test.panel.start instcmd support
bcmxcp: Let decode_instcmd_exec also handle short read from UPS
bcmxcp: Add constants for all bcmxmp meter map, and replace magic numbers with constants

Take all the bcmxcp meter map defined in http://old.networkupstools.org/protocols/eaton/XCP_Meter_Map_021309.pdf
and put them into the bcmxcp.h file.
Update the bcmxcp.c file, replacing magic numbers for meter map by using the corresponding defined constant.
bcmxcp: Comment which meter map constants are mapped to nut variables
bcmxcp: map ups.date and ups.time to meters.

Not testes on hardware, due to lack of hardware supporting it
bcmxcp: Add mapping for output.L<phase>.power.percent to meters

Not tested on hardware, due to lack of hardware supporting it
bcmxcp: Add mapping for output.powerfactor and input.powerfactor to meters

input.powerfactor is not listed in http://www.networkupstools.org/docs/developer-guide.chunked/apas01.html,
so a bit unsure if this should be added.
Not tested on hardware, due to lack of hardware supporting it
bcmxcp: Add mapping for input.power to meters

input.power is not listed in http://www.networkupstools.org/docs/developer-guide.chunked/apas01.html,
but other drivers use it.
Not tested on hardware, due to lack of hardware supporting it
bcmxcp: Add mapping for ambient.1.temperature to meters

Not tested on hardware, due to lack of hardware supporting it