generalize forwarder macros a bit, add ARRAY_C multiops
move some helpers to mpl
remove some indirections in flight type calculations
extend extend() and don't begin() flight registers every time