d3d: Begin centralizing framebuffer management

Trying to avoid any speed impact to GLES.  So far didn't find any.

Hopefully doesn't muck up too much in d3d9 that's not completely updated yet.

-[Unknown]
This part is a wee bit unpretty.  I'm aliasing the FBO structs (msvc doesn't mind and nothing else is a target for Direct3D), and dropped the enum here.  Centralizing the FBO management though might change this and I think it's not too bad.

-[Unknown]