add 1-d matrix specialization, more operators.
rename basic_matrix to matrix