signal handling: prevent high cpu by relying on Thread#wakeup

In [Issue 405][], @tmm1  asserts that [4198b74cd][] introduced high CPU load by
essentially creating a tight loop. This patch addresses the issue by relying on
Thread#wakeup to break from Kernel#sleep, instead of the tight loop.

On [Thread#wakeup][]:

> Marks a given thread as eligible for scheduling, however it may still remain
> blocked on I/O.
>
> Note: This does not invoke the scheduler, see run for more information.

I have [confirmed][sleepy-gist] that Thread#wakeup works as expected on
MRI (1.8.7, 1.9.3, 2.1.1), JRuby (1.7.4 in 1.9-mode), and Rubinius (2.1.1),
but am unsure of how to verify this in the included test suite.

[Issue 405]:     https://github.com/resque/resque-scheduler/issues/405
[4198b74cd]:     https://github.com/resque/resque-scheduler/commit/4198b74cd121dad8d269d8aa8afd6c85860e94b5
[Thread#wakeup]: http://www.ruby-doc.org/core-2.1.1/Thread.html#method-i-wakeup
[sleepy-gist]:   https://gist.github.com/yaauie/7f88d758871244f10414
Updating rubocop + regenerating .rubocop_todo.yml

in prep for v3.0.0
Merge remote-tracking branch 'upstream/issue-405/reduce-cpu-usage-in-sleep-loop' into v3.0.0-prep
Merge pull request #406 from meatballhat/v3.0.0-prep

v3.0.0 prep