Initial commit merged plugin files to CLI files.
Cleaned up files and made Python 2.6 compatible.

This was a lot of PEP8 styling and formatting.
Files were also changed to be combatible with
latest changes in botocore and bcdoc.
Improved the unit and integration tests.

This involved condensing the amount of
tests, changing the naming convention
of the tests, and improving the manner
of which the tests check results.
Added cp command and improved ls command.

The cp command overrides get, copy, and
put commands by relying on positional arguments.
Functionality was expanded for mv so that it
can move files locally to s3 and vice versa.
The ls command was improved so it does not
require a path argument to list all S3 buckets.
All tests were changed to account for change in
commands.
Removed functionality from threads.

This was a significant refactor.  The threads no longer
hold the functionality. Instead, they are stored in
fileinfo.py objects and tasks.py objects.

TaskInfo and FileInfo objects of fileinfo.py usually make
the calls to S3 via botocore.  These info objects are wrapped
by BasicTask objects.  These TaskInfo objects are submitted to
the Executer class in which threads pull from and run the __call__
method of the pulled task objects.

Multipart uploads and downloads submit UploadPartTask and
DownloadPartTask to Executer as well.  These tasks are
instantiated from mulit_upload() and multi_download()
calls from FileInfo files.

This refactoring allows for easier testing, greater ability
to expand functionality of commands, better conservation of
threading resources. Threads no longer discriminate
by type of task so existing threads are being utilized fully
(i.e. the number of threads are not expanding based on number
of multipart operations).  Also, threading strategy can be
changed without affecting functionality.
Automatically increases chunksize.

Added a function that automatically changes chunksize if
there will be more than 1000 parts to the upload using the
default chunksize.  The chunksize saturates at 5 GB.
Test were created in test_utils and other relevant tests
were moved to it.
Fixed a few bugs and added more abstraction.

As to bugs, reenabled ability to cleanup of multipart
uploads when the operations are interrupted (i.e. Ctrl-C).
Also, ensure files that are larger to 5 TB cannot be uploaded
to S3.

As to abstraction, methods to the Executer class were implemented
such as submit() and wait() in order to take the handling of the main
queue out of task.py and fileinfo.py and into the Executer class.
This will make it easier to change how to handle tasks that are
submitted if the threading strategy ever moves away from the use
of a main queue.
Moved original s3 commands to s3api namespace.

Unit tests and integration tests were changed to
reflect the change in namespace.  All tests should
pass now.

Also, Command and parameter descriptions were moved
to descriptions.py to make it easier to find some
documentation.
Updated tests and s3.py to adjust for env. variables.

The code before was relying on configuration files as opposed to
configuration files and environment variables.  Tests were adjusted
so a configuration file specifiying a region or environment variable
is not needed.
Updated a few tests and code after getting feedback.

Made bucket testing more specific by looking at the name as
opposed to the number of buckets.  Eliminated some imports and
variables that were unused.  Fixed some spelling errors.
Can write to stdout using unicode.

The results of operation should throw no errors
even if it is a different platform or python version.
With latest change to botocore, all unicode tests should
pass.
Fixed a potential deadlock and made some minor fixes.

``+=`` opereation is not atomic and so I lock was needed.
Merge branch 'kyleknap-s3' into develop

* kyleknap-s3:
  Fixed a potential deadlock and made some minor fixes.
  Can write to stdout using unicode.
  Updated a few tests and code after getting feedback.
  Updated tests and s3.py to adjust for env. variables.
  Moved original s3 commands to s3api namespace.
  Fixed a few bugs and added more abstraction.
  Automatically increases chunksize.
  Removed functionality from threads.
  Added cp command and improved ls command.
  Improved the unit and integration tests.
  Cleaned up files and made Python 2.6 compatible.
  Initial commit merged plugin files to CLI files.

Conflicts:
	awscli/handlers.py