Refactor: fencing: simplify required device handling
Previously, required devices were added to the list of devices to execute.
Now, they are not added; instead, when the main list is finished,
the device pointer is set to the beginning of the required list, and
processing proceeds as normal.
This is equivalent in effect but simpler and cleaner. It also will be necessary
for remapping reboot to off+on, when the off and on phases will have different
lists of required devices.