Double buffer the VBOs for fluent dynamic rendering

Two buffers are generated for each VBO, that is, position, normal,
uv and element index.

The main thread is responsible for:
1. rendering ops using one of two buffers that is currently used
   for each VBO.
2. map one of two buffers that is not currently used for each VBO
   to let the dispached thread update buffer data.

The dispatched thread is responsible for:
1. update the mapped VBO data created by main thread.
2. if no mapped VBO data is created, the thread sleeps.

Signed-off-by: plysan <plysab@gmail.com>