Bottoming expressions should not be expandable
This patch changes isExpandableApp and isWorkFreeApp to respond False to bottoming applications. I found that if we had x = undefined <dict-expr> then prepareRhs was ANF'ing it to d = <dict-expr> x = undefined d which is stupid (no gain); and worse it made the simplifier iterate indefinitely. It showed up when I started marking 'x' as a bottoming Id more aggresssively than before; but it's been a lurking bug for ages. It was convenient to make isWorkFreeApp also return False for bottoming applications, and I see no reason not to do so. That leaves isCheapApp. It currently replies True to bottoming applications, but I don't see why that's good.. Something to try later.