Update to latest version.

A commit containing all changes made by me and Kenyon over the past
month. This will be the last commit on this project, as there will be a
new project soon that uses OpenGL 3.2+ as the required version. This is
for a huge improvement in render times and more forward compatibility.