Fix byte compilation in utop-choose

Fix the flawed `cond` branch to correctly signal an error for unsupported modes, and wrap `utop-choose` in `eval-and-compile` to make it available at macro expansion time.

This whole `utop-choose` thing looks really scary.  What problem is it even supposed to solve?