Convert Rubik app to stretchless API.
Fixes for the merge.
Move the Effects.setStretch to Meshbase.setStretch
Move the 'pre-multiply mesh before applying any effects' thing from [(Xsize of texture, Ysize of texture) x Mesh's zFactor] to Effects.setStretch(sx,sy,sz)
1. Change the API of Dynamic: split makeNowRunFor into two separate 'setDuration' and 'resetToBeginning'2. Major changes to the 'Dynamic' app so that we can check more about the Dynamics.
Invert the order of Matrix Effects. Now, just as in the other queues, the first matrix effect is actually the first to act on the object - not the other way around!
Simplify the way applications can get notifications when an effect finishes.
Now, instead of the 'DistortedEffects.(de)registerForNotifications()' 2 APIs, we call a single 'Effect.notifyWhenFinished()'.
Correct the Legal notice.
Rename all the classes that are not exported to application to 'Internal'
minor.
Turn the Rubik app into a MemoryTest.
Fixes for memory leak problems uncovered by the 'Rubik' app. (mainly: new method DistortedNode.markForDeletion)
Port changes from the 'distorted-cube' target.
Rubk App: improve 4 buttons in the top.
RubikCube: make the post-rotation effect 'nice'.
Many things.
1) make the Dynamic.setDuration() able to be called AFTER the Dynamic has already been run. (and rename it to 'makeRunNowFor()' )2) remove the automatic removal of zero Effects from EffectQueues.3) adjust several Apps to cope with 2)4) add post-rotation to Rubik (still not finished)
RubikApp: properly compute cameraDistance and FOV.
RubikApp: simplifications.
RubikApp: simplify SurfaceView
Improve the architecture of the Rubik App: new RubikCube class.