Manually detach controller in scenes.

This is moving towards decoupling actions from their targets.

Also undid the weird stuff with using a reverse_iterator to track the
foreground scene.  It was totally unnecessary and could easily result in
undefined behavior.  I don't even remember why I did it in the first
place.