Prevent acceptance context from clearing extra_env

Provider-specific contexts are usually included before the acceptance context.
This meant that when acceptance defined `extra_env` to be an empty hash, any
environment variables set by the provider context were lost.

This patch removes the empty hash definition from acceptance and instead guards
the use of `extra_env` with `defined?`.