Tidy up initialiser ordering
Just going through picking up a few things to tidy from gcc warnings, order of initialisation comes up quite a lot. This changes the order of initialisation in constructors in the code to match the order select by the compiler.