combine all of the ast module ordering into a module that can be used with gulp
amd optimise: pass through empty streams, barf on streaming streams
amd optimise: ensure cyclic errors are communicated back to the user via gulp