Adding proper value semantics to vector, fixing problems with components::copy, adding new test