Treat Int as unsigned in C codegen when zero-extending to Integer

This brings behavior into line with zext to fixed width integers and zext in the LLVM codegen, and ensures that cases where an Int wraps a size_t lose a minimum of information.
Merge pull request #433 from Ralith/zext-inputs-are-unsigned

Treat Int as unsigned in C codegen when zero-extending to Integer