Order and `flex-direction: column` don't work together

I found that using order and flex-direction together sometimes came up with weird results. It took a long time to pin down but it was due to combinations of margin/padding/border compounding.

I ended up pulling some of the padding code from flex-wrap into flex-direction which then let me simplify the code somewhat. Also, I haven't managed to get the tests up and running my end (I can generate but not test), so I've only tested the attached code by hand, I've tried my best to be thorough in testing but I can't promise it doesn't introduce any new bugs!