patch boto 2.10.0 thru 2.15.0 to fix #778

Basically, boto started using [HMAC v4](http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) authentication for EMR in version 2.10.0. However, boto uses the endpoint hostname to infer HMAC credentials. This works fine if you use the hostnames in the EMR docs, as boto was doing, but these don't match EMR's SSL certificate (or they sort of do, but in a tricky way that only works in Python 2.7.5+).

boto "fixed" this in 2.16.0 by going back to the "wrong" (SSL-cert-matching) hostnames, and explicitly setting HMAC credentials. This fix works with mrjob as well as long as you set `aws_region`.

mrjob tries to work around this nonsense by first trying the correct hostname, and then, if there's an SSL error, trying the "wrong" hostname that matches the SSL certificate (see #659). Unforunately, with boto 2.10.0-2.15.0 and Python < 2.7.5, mrjob was first trying the correct hostname, getting an SSL error, and then trying the hostname that matched the SSL certificate, only to get an HMAC error.

This patch emulates the way boto explicitly sets HMAC credentials, for versions of boto prior to the fix, and make sure we always pass an explicit region to `EMRConnection`, even when `aws_region` is `None`.

See #778 for even more info, including some awesome library version forensics.

I don't see any meaningful way to write automated tests for this, but I did hand-test with several versions of boto (2.9.9, 2.14.0 and 2.16.0) and two values of `aws_region` (`us-west-1` and no region).