Upgraded IMatrix to have <T> types. Had to make <double> changes throughout Basic and Common.  These changes will need to be addressed for appropriate handling at a later time.