New particle system

yay
Once it's added, it's very hard to remove it. I think the deciding factor for me is that this pull request is not dependent on the GraphNode/Matrix4#setLookVector functions. It's just the particle demo that is using them. In the interest of keeping this PR as focused as we can, please transfer these functions into your demo for now, and we'll consider them for future integration. Apart from that, I'm happy to merge. Hooray!