This patch replaces ArrayList.removeAll implementation with a
faster one. It also adds the AbstractMutableCollection class
containing default implementations for addAll, removeAll and
retainAll methods and fixes tests to check if removeAll removes
all occurrences found or not.
Some sort tests had an order of equal objects in a sorted list
hardcoded. It caused failures because an approach to placing
equal objects differs in Kotlin JVM and Kotlin Native sort
implementations. With this patch we check if all objects in a list
are sorted istead of checking an exact order of them.
* Use absolute paths to C sources and artifacts because stub generator
changes working directory when running clang.
* Do not change working directory when running without def file.
This patch makes toIndex parameter exclusive in sortArrayWith method
in order to make this method corresponding to the other ones (e.g.
copyOfRange, Array.sortWith extension etc).
It also improves the external sortBy test in order to use it with
different sort algorithms.