Lock down versions of gems via Gemfile

- Added Gemfile{.lock} with explicit ruby dependencies listed
  this includes Puppet to 3.6.2
- Update rspec to use legacy "should" syntax
Fixed handling of non-numeric timeout/retry_interval

Change to use Timeout module rather to simplify logic somewhat...
Refactoring of tests

Not sure if this is better or not