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