Vectorization (SIMD) of Vector

Use OpenMP to vectorize some operations in Vector. The class is a little bit messier now because I cannot use lambda function with OpenMP. 
I think better names for these functions would be `allocate()` and `deallocate()`. Your names make reference to the name of a particular member variable rather than describing what the functions do.