Centralize destruction of FBOs, use std::vector

This moves the actual deletion into `NotifyDestroyed()` and renames it, changes back to std::vector using `iter--` to be safe.

The only real functional change should be in `DestroyAllFBOs()`, which now logs deletions even when buffered rendering is off.

-[Unknown]