IGearClient.add accepts environment variables - fixes 568

I've tried to sketch out some code and made some notes for discussion during design review.

Fixes #568 
Insofar as we want to know whether or not we need to restart the container based on requested environment variables then yes. But that could be a separate issue (and may not be possible with current gear API, for that matter).