add Utils.escape_uri

Implementation from WEBrick::HTTPUtils to match Utils.unescape_uri
Added test cases
Paths now encoded
use Utils.escape_uri/unescape_uri
Merge pull request #356 from burns/escape_uri

Ensure paths are URI encoded, without double encoding
add support for a reuse-able local port
add local_address
use same local ip/port, but alternate ip when connecting to server
formatting