3D BillBoard

Add BillBoard and BillBoardTest.
BillBoard are mostly transparency so add a transparency queue in the render.

It is better that GLStateCache has the method enable depth then we can cache it there.

most of the time we disable the depth test during draw 2d objects. To make sure it works we should re-install it, because previous state may be invalid.