VariantBuilder (for initial review)

it should be okay. We may modifying the signaling NaN but missing() should be smarter than that and detect NaNs even when modified.