Cache bound fbos, allow unbinding only read

This maintains the currently bound fbos, similar to glstate.  So long as these funcs are used, it can prevent duplicate binds.

Binding the same buffer twice comes with a performance penalty.  In one case (Tales of Phantasia X with a "hot" town with tons of intra-buffer copies), this alone improved perf by 10-20%.  For normal usage it's much much smaller.

Obsoletes, or fixes #212, since it adds a way to unbind the read buffer only.

-[Unknown]