cleaned up Rules.lookup_possible_turns(...)

changed this method to have exactly one point-of-return, and altered the
order of operations for clarity, and added comments. the returned data
also now includes "Forfeit" as an explicit move type.