Completely remove shutit_id_list, centralise some error reporting

This
 - reduces the number of params to a few functions (no more shutit_id_list as we can generate it)
 - centralises some error reporting for dep, conflict and ready checking so the util.fail (and sys.exit) is at the top level of code