Deduplicated NuGet GetDefaultToolPath

Added a common `NuGetToolResolver` for the NuGet `Tool<T>`:s
Extended it so it
  1. Caches nuget.exe path if allready found
  2. Not only checks via globber pattern but now
    1. `NUGET_EXE` environment variable
    2. Globber ? "./tools/**/NuGet.exe"`
    3. If exists in environment `path`

This would solve when nuget.exe is placed in a common location and shared between scripts. Also most build servers/services like i..e. AppVeyor already has nuget installed.

This also reduces code duplication as default tool path is resolved in 1 place.
Me neither(not done much AutoFac), but think it's an elegant way. IToolResolver could open a can of refactoring;)