correctly type values instantiated from class parameters
tighten overflow diagnostics and fix type promotion in operations
document -sema-expect
allow constexprs to initialize/assign anything they fit into
on_packet and on_periodic are optional, so treat them as such
link device and endpoint to EndpointExpr
don't load signed numbers from the unsigned sm_value member
don't substitute u32 load of small ints with u16 loads
fix instruction parsing in the statemachine interpreter
unsigned types should convert to larger signed types
oops. condition reversed
drop signed overflow entirely
allow -inf float literals
rename system expresions, add some crosslinks to AST
add the dumbest possible codegen that can support a full feature set

this works, but it is essentially broken. consistency checks are likely
missing in some places, only one machine per TU will produce valid code,
and the code overall is just horrible.