Apply environment features to prepared requests

By having trust environment lookup in request() applications using
prepared requests don't get access to this functionality. Having this in
send() is a more logical place however introduces is a subtle API change.

Solve this by making trust_env a parameter to send() which defaults to
False so maintaining the initial behaviour. The trust_env parameter is
set via the request() function self.trust_env to maintain that
behaviour.

Users wishing to have the environment variables as part of there request
can now specify trust_env=True to send() for the new behaviour.

Closes #1436