Immutable fmt strs

Made BaseFmtStr immutable. When fmtstrs are used to construct other fmtstrs, changing the attributes of the new fmtstr does not alter the original ones.