Replace depricated source
Reintroduce vec3.unproject

This is actually pretty much the same implementation that was there before
the version bump to 2.0. The only difference is that we expect the already
inverted view-projection matrix since its possible that its already
available in the application code for more advanced shaders.