Basic rasterizer states

Provided for the review and to ignite the discussion.
Partially addresses #51. Features:
  * Basic rasterizer state infrastructure
  * Primitive state
  * Depth state
  * Blend state

It doesn't expose everything, striking for a reasonable balance in usability/power. For instance, it doesn't support rendering front faces as facets but back faces as lines. Blend states are going to need a per-draw-buffer selector, will be done in the future work. It's also imperfect that the blend state includes the constant color even though none of the factors may really need it.

Note that no caching is done on either side, so all the states are set with each draw call. I'm also a bit concerned about passing `Option<Something>` to the device, since we are copying the whole struct even if it's not needed.

Most of all I'm not satisfied with the `Factor` and `Comparison` types. They would be more useful if they just copied GL enums, but I wanted to experiment first if we can take advantage of the Rust types system to make them more expressive. Any feedback is greatly appreciated!
I was not concerned with performance. Just curious if rust would see a the potential optimization and utilize it.

I did try it, and with `-O -Zlto` rustc will actually not call any functions. Instead it replaces it with the assembler that writes the evaluated structure to the correct place on the stack. Very neat.