This removes the `VectorType` trait.

Maybe a similar solution will be introduced on the future, but the current system is not useful.

VectorType was only a hint to tell that a struct is memcpy-able. This is a good type-level safety
but it makes the Vector struct somehow hard to use in some situations.

Assume someone writes a library A with a lot of math types.
A does not depend from rust-opencl, and thus does not implement the VectorType trait anywhere.
Another person writes a binary B which uses A. The only way for him to use the Vector type without
being unsafe, is to wrap the types defined by A on a struct, and implement VectorType for that
struct. This is annoying since this implies memory copies to build the wrapped struct vector.

A similar problem arises for the `KernelArg` trait. But since this trait is not used for any
container element, it remains easy to use.