Use AoS instead of SoA; don't use qsort_r

Fixes Bus Error on BSDs due to qsort_r not being the same qsort_r as
linux.
Test for choices with two candidates
Add travis.yml