VariantBuilder (for initial review)

since `kstring` has a malloc inside of it, it should have a kstring creator in hts_memory that returns a unique_ptr to k_string (so it can be managed). We don't want to worry about malloc/free in our code.