Added frame identification support.

Frame identification is a very cheap and common technique to avoid repeating calculations during the same frame.
Of course if you're writing an app you can quickly implement this technique inside the render() method of your ApplicationListener.
However, if you're writing a gdx extension or any high abstraction level framework the above solution is not acceptable. In these cases, a cleaner solution is possible only if the gdx core provides frame identification support directly.

In fact, I've tried to exploit Gdx.graphics.getRawDeltaTime() hoping that it always takes different values for subsequent frames, see https://github.com/libgdx/libgdx/pull/2202#discussion_r15785050. Unfortunately, it turned out that the delta time has the same value of the previous frame more than once per minute. In short, it's a ugly hack, and performs poorly too.

So I added the getFrameId method to the Graphics interface and implemented this feature for all the back-ends but the robovm one, because unfortunately I can't compile and test.

Finally I'm sorry for the wall of pink in this PR. I've literally spent countless hours so far trying to get rid of it. Unfortunately it happens too rarely to see if you have found the ultimate solution. I won't give up though :)