move public vector.hpp header to a new subdirectory
split vector.hpp into five separate headers for different components
begin function wrapper
function is noexcept-movable now