Updated to compile with latest master.

This was basically swapping all the struct members over so they were explicitly public, and changing one use of std::vec::append_one to not be a static method