Remove hackery + fix visibility in webglrenderer

I checked most examples and the only problem left is the depthpassplugin.  
It fixes a lot of problems like visibility and  the __webglinit hack.
Performance is similar on all examples. 
So how do we proceed further??
What's left for `BufferGeometry`?