Clean up mix dependency retrieving and converging

Rename Mix.Deps.Project -> Mix.Deps.Retriever.
Retrieve the entire dependency tree in Retriever and let Converger
only handle converging.
Don't require setting app: false on umbrella deps.
Deprecate Enum.at! and Dict.get! in favor of Enum.fetch! and Dict.fetch!

Previously, `Dict.get!` had a different API than `Dict.get` as
it didn't allow a default argument. Furthermore, having `Dict.fetch`
returning a tuple and `Dict.fetch!` returning an error is more
inline to the bang functions existent in the File module.
Update CHANGELOG
Remove deprecated usage of keywords in Mix
Merge pull request #1082 from ericmj/mix-umbrella-appfile2

Clean up mix dependency retrieving and converging