bcmxcp: Only include ups.serial and device.part if they have a value

Only set info about ups.serial and device.part if the UPS actually report useful info for these.
Remove the handling of space characters as meaning string termination for ups.serial, this is
not done for part number, and according to bcmxcp spec are these both 16 byte ascii text messages.
Move Nominal output frequence handling up, placing it just below Nominal output voltage
bcmxcp: Refactor code for setting which alarms are supported, to avoid code duplication

Refactor the code which checks the alarm map for supported alarms, by making a new
method which checks the alarm bit to see if the alarm is supported.
bcmxcp: Output unsupported alarms on debug level 3, not level 2

The supported alarms in alarm map is outputted at debug level 2.
The unsupported alarms should be outputted at debug level 3, it is not that interesting.
Also remove debug outputted empty line after table heading line for meter map and alarm map.
bcmxcp: Cosmetic commentary fixes and remove some empty lines. No code changes
bcmxcp: Use info_lkp_t structure for mapping topology info

Make code simpler by using the info_lkp_t structure for mapping value from
topology block to text presented to user as ups.description
bcmxcp: Use command map to control which instcmd are supported

Use the command map info retrieved from UPS to list all commands supported
by the UPS at debug level 2.
Use the info from command map to set up which instcmd the UPS supports.
bcmxcp: Cosmetic changes constant definitions. No code changes.
bcmxcp: Remove PW_UPDATE_POWER_SOURCE_STATUS_COMMAND, it seems very unlikely to be used
bcmxcp: Add parameter to nut_find_infoval to control debug output

We do not want debug output if nut_find_infoval does not find a mapped
value in all cases. For example, when a command byte is not mapped to a instcmd,
we do not want debug output.
bcmxcp: Refactor code, use if-else if rather than 4 if statements
bcmxcp: Reformat code, remove tabs in the middle of lines. No code changes

After re-reading the developer code style guide, use spaces and not tabs
in the middle of lines to align text
bcmxcp: Reformat code, remove tabs in the middle of lines. No code changes

After re-reading the developer code style guide, use spaces and not tabs
in the middle of lines to align text
bcmxcp: Code restructure, declare variables at top of method

After re-reading code style, compiled with -pedantic, and got some warnings, so
moved variable declarations to the top of methods
bcmxcp: Add instcmd for system test capabilities based on what UPS support
bcmxcp: Remove newline on debug output for outlets
bcmxcp: Add mapping for some more meters and one more command

Add mapping for PW_SET_TIME_AND_DATE command.
Add mapping for input.bypass.voltage, input.bypass.L1-N.voltage, input.bypass.L2-N.voltage, input.bypass.L3-N.voltage.
Add mapping for input.bypass.frequency.
Add mapping for ups.power.nominal if provided as meter, it was previously only set on init.
Change mapping for ups.realpower for single phase.
Tested on Eaton PW9130.
bcmxcp: Fix handling of date and time format

The date and time bytes are packed BCD, so it must be properly decoded.
The check for the Julian or Month:Day format was wrong
Info on format taken from http://old.networkupstools.org/protocols/eaton/XCP_Rev_C1_Public_021309.pdf