Simplify worker and make sure SIGNAL can stop loop

Remove the foreach() call, SQS will handle this in a separate
method. The stop condition is also put at the top, so when no job
is returned, the loop continues to check for an external stop
condition.
Merge pull request #42 from juriansluiman/feature/stop-worker-before-pop

Simplify worker and make sure SIGNAL can stop loop