Making Vector Builder More Generic

Now provide the container type as the first argument, so can swap out
std::vector for something else