Rewrite effect class and implement YAML config.

Effect class has been rewritten to cache compiled shaders internally.
Compilation directly from code has been removed temporarily and shaders
must now be loaded from a file.

Additionally, the ability to configure the simulation instance via YAML
file has been added. Only three basic attributes are supported for now:
width, height and title. These correspond to the implied window
attributes.