premake5.lua: use C++14
event: improve encapsulation

Events can now only be fired if you have a non-const reference to the
event. This allows us to stop other classes than the one holding the
event from firing it.

Unsubscribing from events now also requires access to the
event_handler object that was used to subscribe in the first place.

Resolves #80.
framebuffer: fix clean up on context switch
camera: use in-class initialization for textures