make category of IMorph mutable
fixed compilation error due to IVertex::EdgePrecision
add type property in MorphRefObject
implemented modifying morph type, reduce redundant code