Framework::ShaderManager: add methods contains(), get() and add()
Split TriangleSample into several functions