Example refactoring and improvements:

the example is now a bit more clear, and shows a new way of passing
attributes to the shaders