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.
Do the abbreviated operations need docstrings? I can't think of anyway to read them dynamically (which is the only way to read them since they're generated dynamically). I suppose in IPython one could do ```Dyadic.__and__<tab>```.