compiler-jx: Assigning a value to an int or uint coerces it so that variables don't store decimal values (closes #74)

Applies to variable declarations, the assignment binary operator, returning a value from a function, and passing an argument to a function.

In the case of return statements and parameters, I included some other basic coercions to make it more consistent with what was already there for variable declarations and assignment. There was some coercion related to dynamic array access and XML that should probably also be shared, but I left that out for now because those ones in particular could use some cleanup. The new return statements and parameters currently call a shared IJSEmitter.emitAssignmentCoercion(). Ideally, all four locations would call that same function, and this should be revisited in the future.
15 files changed