Unit Tests for SQS - Push support for SQS utilizing SNS - Overhaul of SubscribeCommand - Addition of UnsubscribeCommand and UpdateCommand - Move setContainer to Job base class and more

This PR has grown out of a few other proposals/PRs from myself and @SammyK (#3759, #3778, #3784, #3789) so I'd like to get some more eyes on the additions/deletions/changes that are included in the branch.

First, a little background on this. I started out by writing unit tests for SqsQueue and SqsJob since there were none and also made a couple other small changes. @taylorotwell wanted me to submit just 1 PR to cover those few things. Then, @SammyK proposed (and implemented) adding push support for SQS, so I wanted to get that included since there were going to be merge conflicts.  So, I made him a contributor to my fork.  @SammyK  then created a branch and pushed his changes into my fork.  To squash my 23 commits that could be seen in the original PR #3860, I just manually copied over the 19 files and committed to the branch @SammyK had created (this branch).

I'd like to make sure this is all worthy of being included in the core of the framework and make sure any issues that people see are addressed so I can get everything ready to be merged.  Thanks for taking the time.