Implemented build_basis with new dmat type

dmat is a distributed matrix, which contains a data array (dat),
a scalapack descriptor (desc), and information about the process
location in the grid.

Added a constructor-looking thing,  block_inner, and diagonalization
routines for the new type and tested them on build_basis.