Update matrix.lua

Allow N-element vectors, outproduct accepts 3 and 4 vector
Call astable if exists in matrix:new; allows casting other objects into matrix