Refactored s3 plugin structure.

This made the s3 plugin follow the design structure for a
CLI plugin. Some features in CLI were changed to enhance
plugins such as changes made in ``BasicCommand`` class.
Moved properties to ``BaseCLIArgument``.

Made some PEP8 changes as well.
Changed the defaults of some of the arguments.
Merge pull request #869 from kyleknap/refac_s3

Refactored s3 plugin structure.