Fix #379, "CPU usage leak" with battery widget

Failing to find a valid file for the battery widget files means it will
retry later for no good reason - and each of those attempts will modify
the global BATTERY_INFO_FILES list, adding one filename at the beginning

The fix is simple, just make a copy of that list before modifying, and
additionally set a "negative cache" of filenames to avoid repeating

Thanks @DavidMikeSimon for reducing this bug to this widget,
and @blotus for pointing at the file open errors.