Complete RV32 support for Linux (v2)

Changes from prior pull request:
Use unsigned comparison for valid syscall number in entry_32.S
Looking at `gcc/config/riscv/constraints.md` in the current toolchain, I'm not sure that the `r` constraint automatically splits 64-bit values into the register pair `%0` and `%1`.  The closest analogue would be the `A` constraint from i386, but even it doesn't appear to support this behavior.

@aswaterman: Any thoughts on whether such a feature is possible/desirable versus simply doing `(((u64)__hi << 32) | __lo)`?