Refactor and added exception for endless loop

Refactored to use the checkjobstatus and checklcstatus that was implemented
in the Puppet::Provider::Idrac class. (made this the parent).  Also added
check to make sure the update will not loop forever if the component is stuck
in a Downloading, Scheduled, or Installing state.