all: use pthread_barrier for thread sync, nanotube diffusion sim

Wow, so we doing physics now? Kind of. Yeah. Anyway, turns out muxtexes do not block all threads. It's better to use barriers because that's what they're made for. Besides, how does one insert a mutex in this algorithm. Could have used semaphores and actually might. But anyway, we're also doing a very very very dirty hack to display all links. For some very weird reason we get segfaults once we get all links done. No idea why. For now, we duplicate it. I'll fix it later today maybe. Got a few tweaks for the OpenGL system. I think I could get away with doing matrix multiplication inside the GPU. And that's what I should have been doing in the first place.