Simplify tag handling for castings/nil insertion/value popping

Description

Currently the compiler uses the op type, o-tag, tag and the context to figure out where to put casts, where to insert nils or where to pop a value off the stack.
This doesn't work well as it's really hard to figure out when it's actually necessary to e.g. pop a value or if it has already been removed from the stack.
Ideally the analyzer should provide more information to the emitter so that it's easier to understand when and where a casting/nil insertion/value popping is necessary

Environment

None

Assignee

Nicola Mometto

Reporter

Nicola Mometto

Labels

None

Approval

None

Patch

None

Priority

Major
Configure