Make the temp directory configurable

Enable users to specify an alternate temp directory in the chocolatey configuration.
If <tempDir> is not present, then $env:TEMP is used as a default.

This enables companies with IT policies that prevent executing files
in the %TEMP% directory to continue to use Chocolatey (see discussion at https://groups.google.com/forum/#!topic/chocolatey/V8aU7VnB5eM)

Sample Configuration File with value specified:

    <?xml version="1.0"?>
    <chocolatey>

        <tempDir>%ProgramData%\Chocolatey\Temp</tempDir>
    
        <useNuGetForSources>false</useNuGetForSources>
        <checksumFiles>true</checksumFiles>
        <virusCheck>false</virusCheck>
        <sources>
            <source id="chocolatey" value="https://chocolatey.org/api/v2/" />
        </sources>
    </chocolatey>
Anything in helpers should not consider that functions in src/functions exist. Because, they won't once the rewrite is done. There may be others that have this issue already, but let's not add to it.