convert primitives before assigning them to locals
use same conversion logic on varargs array conversions
enforce some ordering on assignments' type lookup through LinkedHash*
turns out, if you wanna dup a wide value, you need to use dup2
actually, widening should happen when the value type is primitive
override compile_widen for chars, so we will not try to convert them to ints/treat them as ints
add core tests to default test run