Improve Vector reusability.

Add methods to re-use the same Vector multiple times. This avoids repetitive reallocation of opencl buffers by the user. The two methods are named `rewrite` and `to_existing_vec` to write/read to/from an opencl vector without allocations.