Add framebuffer object and monitor object

This implements the framebuffer and monitor object
I guess we should add another header for this, something like `util/compatibility.h` or so.