Correct headers move members.

The move members for headers are correct on _MSC_VER, but unfortunately incorrect when defaulted.  This is because the moved-from std::containers are not guaranteed to be empty, and we don't want ~headers() deleting any pointers that are left behind.