thin: add support for matrix and vector arrays
thin/create: use std::array instead of std::vector
thin/program/callback: add throw explictly
thin: add keyboard support
thin: add mouse, visibility and idle callbacks
window: move GLUT related stuff out of thin
vector: space cleanup