Relax queue timeouts

This brings the idling on task queues from ~30%
to about 1-2%.  Note that this does influence the
responsiveness of the UI, particularly with interruption
and executor shutdown (from .1 to 1 second).  I think
this will be addressed when reworking the executor code.

One of the fixes for #333, but note that this is not the
main contribution of high CPU utilization so it does not
completely fix the issue, this will require changing the
multipart upload task algorithms.
Rename print queue attrs to pep8 compatible names

pep8: printQueue is print_queue
pep8: rename totalParts to total_parts
pep8: progressLength to progress_length
pep8: numParts -> num_parts
pep8: Rename totalParts to total_parts
Mark internal attributes as actually internal

Makes it easier to see what is intended to be set outside
by other objects vs. only used for internal use.
Make print queue thread safe
Remove unused import
Fix pylint warnings
Refactor call method into smaller chunks

Makes it easier to change the multipart part enqueueing code.
Extract _enqueue_multipart_upload_tasks in s3 handler
Don't require executor for BasicTask

The retries are handled as soon as the failures are detected, not
resubmitted to the executor.
Endpoint is not used in the BasicTask object
Remove unused vars
Remove cruft from BasicTask

So a lot of these args aren't used and are unnecessary.
Rewrite multipart upload algo
Fix bug for multipart detection
Fix unicode print error in integration tests

nosetests uses a cStringIO for stdout, which will
raise a UnicodeEncodeError on python2.
Always call task_done() even if we can't print

Othewise the process will hang.
Add ability to cancel upload in context object
Abort multipart uploads in progress

If a user cancels the sync/cp via Ctrl+C or if
a part has a problem being uploaded, then we need
to abort all of the current multipart uploads.

This mechanism can be improved, we could have a separate
thread that watches these elements or even perform these tasks
while we're waiting for the executor to finish.

But at this point all the unit/integration tests are passing and
we properly abort any in progress multipart uploads.
Remove old multipart upload code

Can't remove all the vars because the multipart download has
not been ported over to the new system, but I can at least remove
multi_upload and all the calls to it.
Merge branch 'fix-bad-print' into multi-part-algos

* fix-bad-print:
  Always call task_done() even if we can't print
  Fix unicode print error in integration tests

Conflicts:
	awscli/customizations/s3/executer.py