Split Mix.Deps into fetched and unfetched

Previously, we were fetching/loading the dependencies
before calling deps.update, that caused issues because
the updated version tried to use the load mixfile cache,
often failing to compile.
Do not load the dependency on check lock but only when it is fetched
Add tests covering a bad mix.exs file is not loaded on deps.get/deps.update