Change semantics for render

-- Instead of automatically removing layers that are done with
   their render cycle, we keep them but mark them as inactive.
   It would be unexpected for users to have a layer deleted just
   because the effect is finished. Instead, they can update the
   source associated with that layer.
-- Source.step now returns true if it changed the grid contents and
   calls this.deactivate() if it doesn't want to be called again.