add replace method for multi_type_vector
Bulk replace is better than iteratively overwriting several elements of a multi type vector by calling set() etc replace() implements bulk replace that rebuilds the mtv while going through the replace entries list passed to it.
The replace method is particularly important when we refactor multi_type_vector to store absolute positions in blocks rather than the block sizes to make random lookups faster. Refer: https://lists.freedesktop.org/archives/libreoffice/2017-August/078357.html
Also adds test case for replace in multi_type_vector_test_custom.cpp