Fix edge cases in new cycle skip logic

Commit dab702a 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.
Use D2XR pick_connected_segment for increased randomness
Add Raspberry Pi automatic environment setup

Patch by derhass.

Requested at
<http://www.dxx-rebirth.com/frm/index.php/topic,1048.msg17426/topicseen.html#msg17426>.
Make GET_INTEL_* const-correct

Based on a report by derhass, but with additional changes.  Original
report at

<http://www.dxx-rebirth.com/frm/index.php/topic,1048.msg17421.html#msg17421>.
Make main/fireball.c more like D2XR

Add general purpose explode_badass_object.  Make object_create_egg a
thin wrapper for new drop_powerup, which has the same signature as in
D2XR.
Add unused ai_restore_state parameter version to match D2X