Engine update

For about three weeks now, I've been working exclusively on this branch. I am finally satisfied with the examples which are up and running on the website and am ready to merge this branch back into master. There are too many changes to document here, but if you're interested, you can check out the individual commits.