ElemDiver interface, impl, and tests

I’ve added in an implementation of ElemDiver, and tests.
I can't, it needs to be a pointer to Dense to implement Matrix.  Would you prefer `temp := new(Dense)`, `temp := NewDense(0,0,nil)`, `var temp *Dense` followed by assignment, or leave as is?  Note that other tests use this same code.