idempotent as middleware
move idempotent/instrumentor rescue stuff into error_call
move uri parsing to Excon.new
allow for user configurable uri parser
move VALID_CONNECTION_KEYS to Constants
move idempotent test to middleware directory