option to load AWS keys from env vars

Signed-off-by: Vasileios Mitrousis <vamitrou@gmail.com>
load the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY env vars by default
added support for default AWS CLI env naming convention
Add and remove full lifecycle policies

Adds functions for creating and removing full XML lifecycle policies, this will enable use of things like Glacier transition and multiple prefixes and rules. Mostly copied from the add and remove policy functions.
Remove un-used code and cleanup
Merge pull request #336 from vamitrou/env_aws_keys

option to load AWS keys from env vars
Merge pull request #340 from songkick/master

Add and remove full lifecycle policies
Update version to 1.5.0-rc1
fix issue with error display after config modify
Fix potential divide by zero errors
Merge pull request #361 from staer/patch-1

Fix potential divide by zero errors
Merge pull request #360 from intothev01d/config-ws-strip

fix issue with error display after config modify
Revert "fix issue with error display after config modify"

This reverts commit 0f3fab40da77ccddc011da5e30b30ceb8564074d.
compare_filelists size check needs both objects to have a size value

Bug report that we were failing with a traceback because one or the
other of the objects being compared didn't have a 'size' value.  So,
let's explicitly check that we have a 'size' value before reading the
value for comparison.
Cosmetic: removed one empty space in excess of end of run summary.
Fix MD5 comparison with s3 compatible servers that are not Amazon S3.

Some servers (like fakes3), doesn't add quotes in ETags aroung md5 value.
Ex.:
AWS: <LastModified>2014-06-05T09:45:25.000Z</LastModified><ETag>&quot;fc0f71ccc63dda0efc30239b48bdeccd&quot;</ETag><Size>132947133</Size>
FAKES3: <LastModified>2014-06-05T09:58:35.982060ZZ</LastModified><ETag>fc0f71ccc63dda0efc30239b48bdeccd</ETag><Size>132947133</Size>
(Nota: &quot; <=> " )

Bug in the previous code was always striping and first and last characters whatever they were. Such, in a fakes3 case, dest md5 was truncated and so would never match.
In the same time, this patch normalize the behavior to always strip " and ' chars in all the code dealing with etags.
Small cleanup of code, using "in" instead of "find" for strings when possible.
Fix an error in my previous commit: b5b61abc8eb159f5932b936c7ca47e618615f6a3. (.find() forgotten to be removed)