Adds renderbuffer, texture, fbo. Adds get_id() functions.

The renderbuffer and texture wrapper classes are really straightforward and can be pulled right away (I guess).

I needed ```get_id()``` functions on those classes to be able to work with OpenCL. I can image such functionality is also useful when using certain OpenGL extensions (or even functions we do not wrap already).

The ```bare_fbo``` wrapper is also quite easy and lacks (just like ```vao```) the ability to attach temporary textures or renderbuffers. The ```fbo``` on the other hand can attach those (and stores them himself). Maybe such an approach is also possible with vao's?
Currently you *can* share them, by passing them as reference (and not as a temporary). You'll have to manage the lifetime yourself though. For example it is enough to put the related stuff in a struct:
``` c++
// shares a texture with two fbos and cleans up nicely
struct foo {
    moggle::texture tex;
    moggle::fbo f1, f2;

    foo(){
        tex.image_2d(GL_TEXTURE_2D, 0, GL_RGBA, 1280, 800, nullptr);
        f1.attach(GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex);
        f2.attach(GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex);
    }
};
```
So I don't think it's hard, what bothers me more is that ```fbo``` can attach both "outside textures" and textures it owns...

I think there should be no differentiation between texture and renderbuffer (from the fbos perspective), so I don't agree on your last point.