Allow glfw::init to be recalled if an error occurred and use a submodule for GLFW

Note that we will apparently (according to @huonw) be able to drastically reduce the footprint of our `unsafe` code the AtomicBool and Share changes land.

This also removes the install and uninstall targets. Clients should use git submodules instead.