Let's not call this every command if we don't have to.

Let's make framebuffer immutable as suggested before and only call `drawBuffersWEBGL` if the framebuffer changes or goes from `defined` to `undefined` or vice versa.  This is probably best done in the context, but we can also think about doing it in the framebuffer.