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.
There just needs to be a test by that name in the test\_args.py file, else an error is raised during the Travis tests. I did not know what to do in these since they are never really initialized using args, so I just left it empty.
I have imported the class in the case of BasisDependent I see. So I can either import Dyadic here, or remove the import from the other test. As it is, nothing is being done about it.