Basic multidispatch arrfunc

Basic functionality is working:

- There's a primitive set of rules for allowable implicit conversions
- Does a topological sort of signatures

To work as generally expected, also needs to add a buffering layer to the instantiated ckernel when any types have been implicitly converted. This is in progress.