Chainable VariantHeaderBuilder

SamBuilder creates a new Sam object with `build()` so it's safe to reuse without copies.  I prefer that paradigm and I think it will help in this case.  Thanks for pointing out a good example to follow.