the actual balancing

added two selection algorithms and made the core use them
updated the readme file to reflect overall progress
the current implementation uses single-threaded handling which we'll fix
in the next couple of commits