Now if you give it 10 files and tell it to split it into 3 parts
it will not longer split it into 2 parts. It will split it into 3
parts and add the remaining files to the first part -> the first part
will have in this case one file more than the rest.
This and some other cases are now covered by tests.
With this change it will no longer start for each file a goroutine
it will start fewer goroutines and never more than the system
cpu cores count. This will increase the performance on single core systems because
it won't create unnessesary goroutines and multi core systems will still
benefit from the reduced amount of goroutines.