Chainable VariantHeaderBuilder

No, it doesn't require a copy -- the move assignment operator can be used instead, if available, since the right side is an rvalue expression. See SamBuilder for an example, which supports chainable operations but has a deleted copy constructor/copy assignment operator.

The problem I'm trying to avoid is people unwittingly making expensive deep copies for no good reason! :)