glsl: Add virtual function ir_instruction::as_jump()
!UPSTREAM: glsl: Teach basic block analysis about break/continue/discard.

Previously, the only kind of ir_jump that would terminate a basic
block was "return".  However, the other possible types of ir_jump
("break", "continue", and "discard") should terminate a basic block
too.  This patch modifies basic block analysis so that it terminates a
basic block on any type of ir_jump, not just ir_return.

Fixes ???

TODO: add piglit test and update comment above.

TODO: verify no piglit regressions.