Metamorphosis: the new architecture based on draw lists

Described briefly on [Reddit](http://www.reddit.com/r/rust_gamedev/comments/2dc47d/gfxrs_is_metamorphosing/)
Closes #134, #194, #202, #203

This PR removes `Renderer`, `Device`, and the communication between them. Instead, it introduces front-end `Manager` and `DrawList`, as well as device draw list concept. The draw list is the new communication medium between the rendering front-end and the device, thus no explicit multi-tasking is needed. One can conveniently use draw lists on a single-thread, or pass them around (by re-using them) between user thread and a render thread.

Note that there are some rough edges still, but I don't want to make everyone to wait for all the polishing:
- [x] it doesn't merge, needs a re-base
- [x] whitespace formatting, needs tabs to die
- [x] cube example doesn't compile, needs a small fix
- [ ] we need a new multi-tasking example
- [ ] some comments are obsolete, a lot of documentation is missing