Use the in SSG and not out SSG

Or else we are iterating through useless data.

See #2 and #8
Add transfer function for x := y.sel

This is a first pass. Since this is so tricky and the example doesn't
actually expose all the corner cases, we must do a code review on it.

See #2 and #13.
Use x in x := y.sel to name the new ShapeNode

Previously I was wrongly using the name y.

See #2 and #13.
Need to have specific definition of notEquals

According to Figure 10 of the paper there is special definition of
inequality of ShapeNodes. We must use that when dealing with the
x := y.sel cases for compatible{in, self, out}.

See #2 and #13.