Dyadic code for vector module

Has been based off #7566 
Adds code for dyadics, with tests.
Also restructures the Dyadic and Vector code into a nice Object-Oriented structure with the introduction of a common super class.
Its mainly for somevector.dot(somedyadic). The code's present in physics.vector, so I added the functionality here too. Or do you mean the code should be in vector.py instead?