'Fix' a compilation error to do with implementing Ranged twice with different type arguments. Very weird error because Ranged didn't actually occur anywhere in the signature javac was complaining about. The problem method was spread() and Ranged only occurred because it has a type argument whose bound is Sequential whose supertypes include Ranged twice. The solution is to avoid having to implement spread in something which javac will compile, so in this case I made the problem class extend BaseIterable. @FroMage should investigate this.
improve printing of Tuple type arguments
split some of the core functions for easier maintenance
fill in TODO string
fill in TODO string
Conflicts:
	src/ceylon/language/Iterable.ceylon
Merge branch 'master' into inline

Conflicts:
	src/ceylon/language/Iterable.ceylon