Basic Vector framework

Added:

1. Vector core - Vector, VectorAdd, VectorMul, BaseVector
2. BaseScalar
3. Del
4. CoordSysRect
5. Point
6. functions.py - express, matrix_to_vector 
That seems to be giving an error. 
<code>TypeError: type.\_\_new\_\_(metaclass): metaclass is not a subtype of type</code>.
Defining a custom hash for VectorZero seems to work.
I define it in the <code>\_\_new\_\_</code> method itself, as 
<code>obj.\_hash = tuple([S(0), Symbol('global')]).\_\_hash\_\_()</code>.
And then just return <code>self.\_hash</code> in the <code>\_\_hash\_\_</code> method.
I know this is not the ideal way to do it, but its working for both Python 2 and 3. And since Vector.zero will be the only instance of VectorZero during any session, I don't think it will be much of an overhead.
Still, will try to look into alternative solutions.