Improvements to the vector module: Del and Orienters

1. Introduces the Orienters API for good code structure
2. Del class now returns unevaluated expressions(vectorial or scalar) composed of Derivative instances. The user can call .doit() to evaluate them.
This might be better `isinstance(x, (BaseScalar, BaseVector))`