Prevent default middlewares from being mutated

Hi - ran into a problem where I was accidentally mutating the default middlewares array. To prevent it, I followed the pattern used for the headers hash.

This solved my immediate problem, but I think there could be a better way to add middleware than appending to the `@data[:middlewares]` array of the connection. Maybe connection#use.