alternative approach

this does NOT run rustc inside, but just converts `a + b` into
`a.const_add(b)`.

pros:

- less craziness, no `thread_local!` table corruption
- maybe faster?
- simpler

cons:

- less craziness :(
- no idea how `if-else` can be converted