[std] Fix unsigned behavior in some UInt ops

Fixes the division, modulus, and less than/greater than ops for UInt as pointed out in issue #2736. Also adds a test for this issue.

It does not fix all of the mentioned problem -- notably the differences in behavior of << and >> and comparison of int vs UInt on swf9. I don't think I can disallow Int == UInt in any easy way on the abstract side because it unifies to Int.