Remove :compile_path from config and move it to Mix.Project
Ensure app key is required when getting the compile_path
Extract Mix.ProjectStack from Mix.Server
Move mix configs to app environment and split TasksServer
Do not override builtin type
Compile not ok dependencies on deps.get and deps.update
Add is_var/1 for use in typespec guards

Allows you to specify a variable without any type contraints.
Move typespec guards to end of spec

Moves precedence of `when` to be lower than `::`.
Move mix dependencies to _build
Rename fetched to loaded and add a manifest_path
Sinplify mechanism for checking and handling locks

In particular, there is no need to pass :lockfile around deps.
We also remove the umbrella handling from the lock.
Ensure archives work with new _build setup
Move rebar and other deps to _build
Share _build path when running commands from umbrella
Ensure rebar dependencies are stored in the proper directory
Improve coverage for builds and rebar integration
Update new applications .gitignore
Rename _build to _build/shared
Add mix iex that simply fails and tell users to use iex -S mix
Allow builds to be customized per environment