Check redefinition in extend(addon)

Current the following code can be compiled by rock but generates errors by c compiler:

	import structs/ArrayList

	extend ArrayList<Int>{
		exists?: func -> Bool{
			return false
		}
	}

	extend ArrayList<String>{
		exists?: func(i: String) -> Bool{
			return true
		}
	}


Another suitation:

	foo: class{
		exists?: func -> Bool { false }
	}

	extend foo{
		exists?: func -> Bool { true }
	}


This commit check the redefiniton when adding current addons to base.


Current sdk:
sdk/math
lang/Numbers

has same extension "abs" . I added a suffix "~math" for the ones in math.