Add an optimization for CopyB nodes.
Add an optimization for CopyB nodes.

This covers two cases (assuming no aliasing operations in between the nodes):

Firstly, a Store node whose destination lies completely within the CopyB's
destination can be deleted.

Secondly, if a previous CopyB (A) writes to the source of CopyB to be optimized
(B), we can use A's source pointer for further optimizations. If A's source is
constant, we can change B to read from A's source.  Cases with offsets are not
handled.

killbug2004/libfirm,8l/libfirm,davidgiven/libfirm,MatzeB/libfirm,davidgiven/libfirm,jonashaag/libfirm,killbug2004/libfirm,davidgiven/libfirm,killbug2004/libfirm,MatzeB/libfirm,jonashaag/libfirm,davidgiven/libfirm,libfirm/libfirm,libfirm/libfirm,davidgiven/libfirm,davidgiven/libfirm,killbug2004/libfirm,MatzeB/libfirm,davidgiven/libfirm,killbug2004/libfirm,MatzeB/libfirm,killbug2004/libfirm,jonashaag/libfirm,8l/libfirm,jonashaag/libfirm,MatzeB/libfirm,MatzeB/libfirm,jonashaag/libfirm,libfirm/libfirm,8l/libfirm,8l/libfirm,jonashaag/libfirm,8l/libfirm,libfirm/libfirm,8l/libfirm,8l/libfirm,MatzeB/libfirm,killbug2004/libfirm,libfirm/libfirm,jonashaag/libfirm