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.
Add resource bindings and accessors to effect.

Implements resources bindings and accessors in the Effect class enabling
the user to easily assign values to their compiled and linked shader
programs. Currently does not support binding uniforms to a specific
index but rather retrieves and caches the automatically assigned uniform
index the first time the uniform is written to.

Added debug helper functions to the Effect class that allow the user to
print out a list of currently active uniforms and attributes on their
shader program.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	AblativeGL/AblativeGL.vcxproj.filters