Allow expansions of ENV_* vars in all options

This is a massive refactor of #208

This PR addresses some points raised by @mnaberez 

> I looked at the patch online just now, and I think this patch is intended to allow ENV_ to be expanded by all options in all sections. The supplied test only seems to check expansion of three options in one section. That is probably not enough to give us confidence that this works. A number of people have been working to increase test coverage lately (see the commit log). Patches that are perceived to reduce test coverage are less likely to get merged.

I've merge the latest code (as of this PR). In addition, I've expanded the tests covering more options and more sections, managing to increase coverage of supervisor.option from 80% to 83%. Overall though, it's not much increase (as far as ENV_ expansion is concerned), as the overall coverage is still 74%. PR #208 is also at 74%. I've seen that much of the untested parts are indeed a little tricky and OS dependent mechanisms. 

The sphinx docs we're also updated, there's a new small section called "Environment Variable Interpolation" in the configuration .

As recommended, I've also manually tested the patch in production, using a configuration with environment variables in many of the  sections. So far everything is okay.