glfw3: Make VideoMode an unowned boxed struct

VideoMode should really be a compact class, but since GLFW uses it
inconsistently, make it a struct. That means return values need to be
boxed an unowned.