new api drawXXX() to support custom osd/subtitle drawing on renderer.

subclass the existing renderer. logic is clear
TODO:
0. add constructor for with private class parameter
1. what if QPainter is needed
2. unifine the painting logic logic
3. set as pure virtual when other renderers done(gl, graphicsitem)
4. add final vo template
new api: VideoRenderer::widget(), graphicsItem()
gl: use drawXXX() api
Merge branch 'x11'
GraphicsItemRenderer use the same painting logic and api with others
GraphicsItemRenderer aspect ratio change state

It's seems right. but why other renderer do not have this problem?
qmake: correct Qt version detection. do not empty cache if recheck
gl: check gl1 support
do not add qt opengl module if gl test failed
Merge branch 'gl'
README: building, player usage, FFmpeg projects etc
gl: do not include GLWidgetRenderer.h if gl is disabled

link error with msvc. why gcc is ok?
README: building QtAV
Fix compile warning about size_t
fix debug linking

the debug library name is wrong. why i commented that line before?
update documents about building. add a Chinese document
d2d: some toolchains need _COM_interface definition
qmake: create cache if not exist. print how to recheck
fix warning about unused id
new api drawXXX() to support custom osd/subtitle drawing on renderer.

subclass the existing renderer. logic is clear
TODO:
0. add constructor for with private class parameter
1. what if QPainter is needed
2. unifine the painting logic logic
3. set as pure virtual when other renderers done(gl, graphicsitem)
4. add final vo template