Fix is_assigned usage and associated c_for pretty printer

calling is_assigned on the loop node always catches the loop index
assignment...
Add missing std::forward
Unrolled, recursive version of array offset computation
Fix bad combiner ordering

In one must first assign a type to the lhs before combining its type
with another, otherwise an incomplete type information is used.