Collect attributes of a type in the order of their init

Property definitions

nitc $ NaiveInterpreter :: collect_attr_propdef
	# Collect attributes of a type in the order of their init
	fun collect_attr_propdef(mtype: MType): Array[AAttrPropdef]
	do
		var cache = self.collect_attr_propdef_cache
		if cache.has_key(mtype) then return cache[mtype]

		var res = new Array[AAttrPropdef]
		var cds = mtype.collect_mclassdefs(self.mainmodule).to_a
		self.mainmodule.linearize_mclassdefs(cds)
		for cd in cds do
			res.add_all(modelbuilder.collect_attr_propdef(cd))
		end

		cache[mtype] = res
		return res
	end
src/interpreter/naive_interpreter.nit:660,2--675,4