Always warn when reading from stdin
More preconditions in codegen.

- isPowerOf2 for non-constants
- isPowerOf2OrZero
- isShiftedMask
- WillNotOverflowUnsignedAdd
- WillNotOverflowSignedSub
- WillNotOverflowUnsignedSub
- hasOneUse

NOTE: The new WillNotOverflow* predicates are not available in LLVM 3.4.1
Warn only when reading from a TTY. Allow '-' for stdin on command line.
Rework Alive to use InstCombine's worklist infrastructure.
Use SimplifyInstruction