Iterable及Iterator的function改為可拋出例外, Iterable補上firstOf...OrNull
collection interfaces: fix generic arguments, change more methods to accept exceptions