Add predicate Known. Allow predicates with arbitrary arguments.

Known(%a,cexpr) asserts that variable %a is equal to some constant expression.
It cannot be translated to LLVM, but may be used by Souper.
Start adding codegen
reject transformations where newly created temps are unused
This helps preventing mistakes in specs, and disallows the introduction of dead expressions (not interesting).
add abs() constant function
Allow true, false, undef, null in function and predicate args.

Move recognition of true|false|undef|null from operand to cnst_expr_atoms.
Merge branch 'lits' into upstream