move css and view engines out of the main code

Imho, having all this stuff in one place is better than having it scattered all around the code.

This properly errors out on invalid options. Generated output should be the same as before.

ref #44