These can be moved into the RegisterColumn constructor, which avoids potential allocations in the case a std::function would otherwise need to allocate to hold all of it's captured data. Also tidy up the inclusion order while we're at it.