Fix edge cases in new cycle skip logic

Commit 0ceaaaf introduced two undesirable behaviors which can be
mitigated by a heuristic from commit cab78bb and commit 7bed83b.  This
heuristic prevents a buffer overread if no weapons are auto-selectable
and prevents the player from being stuck on a single weapon if only one
weapon is auto-selectable and that weapon is the current weapon.
Players would not use cycle in such a case, so skipping the
non-auto-select weapons does not help.