Full framebuffer support for the user, plus missing rasterizer states

Closes #50 and #51
Features:
- render surface operations
- user frame buffers
- viewport state
- scissor state
- color mask state