Replaced abstract_creator and creator by class templates
Updated diagonalize() interface
Introduced generic factory class
Rewritten factories in terms of generic factory class template
Created factory for distributed_crs_matrix