(MODULES-2709) Rework PowerShell timeouts
(MODULES-2709) Rework PowerShell timeouts

 - Increase the default timeout to 300 seconds to allow for longer
   running tasks.  Refactor code to allow execute to accept a timeout.

   Note that at this time, only the Ruby code observes the timeout.
   PowerShell code continues to run in the background and may create
   some backpressure on subsequent resource applications, depending
   on what type of resources are running and how long they take to
   execute.

   To clarify - Ruby will move on to applying the next resource, but if
   it is a DSC resource, it's execution is blocked until the previous
   resource has finished executing code.

   To solve this particular issue requires running the PowerShell code
   asynchronously, observing the timeout and terminating the running
   PowerShell code, which will be implemented in the future.

ConclusionMC/puppetlabs-dsc,Iristyle/puppetlabs-dsc,puppetlabs/puppetlabs-dsc,jpogran/puppetlabs-dsc,Iristyle/puppetlabs-dsc,cowofevil/puppetlabs-dsc,ConclusionMC/puppetlabs-dsc,ferventcoder/puppetlabs-dsc,ConclusionMC/puppetlabs-dsc,cowofevil/puppetlabs-dsc,jpogran/puppetlabs-dsc,ferventcoder/puppetlabs-dsc,cowofevil/puppetlabs-dsc,puppetlabs/puppetlabs-dsc,ferventcoder/puppetlabs-dsc,puppetlabs/puppetlabs-dsc,ConclusionMC/puppetlabs-dsc,ConclusionMC/puppetlabs-dsc,ferventcoder/puppetlabs-dsc,jpogran/puppetlabs-dsc,Iristyle/puppetlabs-dsc,Iristyle/puppetlabs-dsc