Consolidate handling of "is this a literal" and "is this a value"

In the process fix inability of IC to deal with \[], and simplify
the overal codepath bind value passing codepath

Aside from the bugfixes there should be no functional changes

Work inspired by a report and preliminary patch from dim0xff++
Fix incorrect handling of stringifiable objects in cond collapser

Thinko introduced in the recent 8d005ad9
Call mro reinit in tests only on 5.8
Clarify FC/IC conflict exception
Rename some variables in the FC codepath for clarity

No functional changes