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.
3. adds the following printing implementations for the vector module - pretty, latex
4. scalar\_map method now takes into account the relative location of one coordinate system wrt another.
5. adds the methods 'measure\_numbers()' to Vector
6. Adds helper methods for calculating curl, divergence, gradient. Also adds the scalar\_potential and scalar\_potential\_difference functions present in the physics.vector module
Having \_angle would mean it is hidden from the public API. Underscores are usually used for attributes the user should _not_ mess with. Having just <code>self.angle</code> would make it open to modification by the user, which we don't want. So <code>@property</code> ensures that the user just _accesses_ it.
In any case, Python is a language in which the user can mess things up anyway, if he wants. These are just conventions to discourage that.