Attempt to separate Vector and Matrix classes from main.cu

CUDA does not have support for static linking in versions less than 5.0. For that reason, device functions must be defined in the same compilation unit.
Matrix code is in Matrix.cuh
Vector code is in Vector.cuh