Don't call depsolver when the result will be ignored
Rename internal helper halt -> wm_halt

Avoid potential confusion with erlang:halt/0,1,2. Not a real problem
since the arity differs, but wm_halt adds some clarity.
Handle depsolver timeout as a 412

We choose to make a depsolver timeout a non 500 error to avoid the
client from retrying immediately. While not ideal, the user can pin
versions and/or reduce the cookbook version set and then retry.
Merge branch 'sf/depsolver-timeout'