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.
What you suggest is actually better. This is a bug I hadn't noticed from last year's GSoC and I guess I just copied the code. The current version of what I have written means something entirely different because of Logical operator precedence. Thanks for this!