Prepare requests with session settings separately from sending.
Skip unneccessary Request.copy in Session.request
Shallow copy of Request fields in Request.copy()

This prevents e.g. modifying the headers of a copied request from
affecting the headers of its source and vice versa. Copying is used with
the intent to mutuate, so allowing this kind of mutation of fields makes
sense.

Is a deep copy better?
Add Request.copy() test case.
Add Session.prepare_request test case.
Merge settings when creating PreparedRequest, don't copy Request.
Merge pull request #1507 from buzztabapp/prepared-session-requests

Allow preparing of Requests from Session settings without sending.