don't evaluate sense and issues in variants that won't be chosen anyway
faster profiling
more straightforward createBranch
linear-time leastValued
non-allocating unhappyCount
branch creation cleanup
don't evaluate all variants for minimum unhappyCount