Important bug fixes for the recent peephole optimizations:

* If you change an instruction so that a symbol was written to in a spot
  where it wasn't before, you MUST call block_unalias() to make sure to
  end any notion of its being an alias for another symbol at that point
  or later in the code block.
* Two code transformations that were legal only if a particular symbol
  was not subsequently read neglected to consider that output parameters
  or globals may be "read" after the shader is done executing and so not
  having later read instructions within the shader is not a reliable
  indicator.