Handle UPSes with broken report descriptors.

As reported by David Higgs some UPSes might send fewer bytes than
requested.  When such thing happens, do like apcupsd and adjust
the size of the given descriptor.

Based on a diff provided by David Higgs, thanks!