Test confirming #437 multiple processes can corrupt the schedules 

If more than one process sets the schedule (Resque.schedule=) there is a chance the schedule list will become corrupted.
Ok Rubocop
Set the schedule whether it has changed or not

Perhaps it is more optimal to only set the schedule
if it has changed.  However that prevents this entire
method from being pipelined.
Atomic version of Resque.schedule=

This pipelines the clear_schedule and set_schedule to
remove conflict with other processes simultaneously
calling schedule=

See #437
Remove test demonstration

It was created to demonstrate the problem in #437
oh Rubocop
replace pipeline with multi

pipeline is not transactional, thanks @yaauie for correcting me.
Lock Rubocop version and make it happy

- Disable PerceivedComplexity check
- Fix minor issues in tests
Merge branch 'lock-rubocop-version'
Merge pull request #439 from jweir/atomic-schedule

Atomic schedule
reload_schedule! returns nil with no job in queue

The reload_schedule! method invoked in update_schedule returns nil if no
more job is in the queue. Access the schedule Hash instead.

Fixes #430