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.
What is system2 ? Is there a more clever name?

Also, why "system" at all? What is a system?