Make HTTP(S) Connection Pooling Port-Aware

This change makes the connection pooling infrastructure port-aware and should fix #1737. Somehow it was missing this, which caused problems when trying to open connections on non-standard ports and hostnames. Changes in this PR:

 * Change pooling key to `(host, port, is_secure)`
 * Set the port when creating new connections
 * Log the port when making requests
 * Properly handle redirects which include custom ports
 * Modify authentication code to support localhost, IP addresses, and other custom domains
 * Modify DynamoDB2 custom `make_request` to set the correct host information

I've run lots and lots of tests, tested out the connections to localhost for the local DynamoDB service and think this should all work without breaking anything. @toastdriven, @garnaat please review.