ivory-opts: different local vars for different passes.
  * Decomposing Boolean exprs is broken, do to shortcutting.
ivory-opts: back out changes to decompose assertions into local vars
until i have time to fix shortcutting issue.
ivory runtime: use macros to define functions at types.
ivory runtime: build support.
compiler checks refactor:
  - pushed overflow checks to static inline C functions.
  - simplified AssertFold code.
  - Flew code to test.