Reorder CAST_* and CALL_* values

This should make it easier to distinguish success/warning/error.

This caught an issue with casting voids, because I was using
assert.equal instead of assert.strictEqual.
Add CAST_OK_{EXACT,PROMOTION,CONVERSION}

These give more specifics as to why a cast is OK. This will be used to
help choose the best function, given overloaded functions.