feature add read-only access to current Matrix Stack

this is a clean PR and a replacement for PR #2479.

Original PR message:

having access to the matrix stack is really useful - the canonical example would be: if you want to push a normalMatrix to the shader (calculated once per frame on the CPU, used as a const many many times on the GPU):

	ofMatrix4x4 modelViewMatrix = ofGetGLProgrammableRenderer()->getCurrentMatrix(OF_MATRIX_MODELVIEW);
	ofMatrix4x4 normalMatrix = ofMatrix4x4::getTransposedOf(modelViewMatrix.getInverse());
	mShd1.setUniformMatrix4f("normalMatrix", normalMatrix);

Otherwise, you'd have to calculate the normal matrix in the vertex shader (per-vertex) or even in the fragment shader (per pixel!):

	mat4 normalMatrix = transpose(inverse(modelViewMatrix));

Matrix inverses are amongst the most costly GLSL operations.

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
add ofGetCurrentMatrix

* adds getCurrentMatrix to ofBaseRenderer and all its direct heirs

* adds ofGetCurrentMatrix which will return the current matrix state

* this will, in order not to over-optimise the code, return an ofMatrix4x4 by copy instead of a const ofMatrix4x4 & - I trust modern compilers will automatically move these things and find the code easier to optimise this way anyway.

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
add changelog entry

adds changelog entry for ofGetCurrentMatrix, since this affects core API

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
Merge pull request #2694 from tgfrerer/feature-get-current-matrix-state-GL-programmable

feature add read-only access to current Matrix Stack