Refactor CI in to multiple stages
I think this makes it a bit easier to manage and control the CI so we can see more clearly what's being done and when things go wrong.
The artifacts are updated to save the important results from each stage as needed. (Some include artifacts needed for the next stage, though.)