Simplify the scheduling algorithm

The old scheduling code would try to find the best tile to place some
node on, which is complicated because it requires rolling back
scheduling decisions.  I never really made it far enough to get that
to work and have instead simply made the algorithm greedier (it has a
simple ordering for where an operation should be scheduler), which
removes the need to roll back decisions.

This gets rid of the lasts bits of cruft that were related to that old
scheduler.