Parallelising + water cube

added multithreading to the cube update procedure. water cube not yet
perfected - stays in piles instead of flowing
Thread modifications

Threads designed to exploit task parallelism instead of data
parallelism.
Update refactoring + water changes

update now passes reference to actual cube as well as cube state.  Water
cubes can accumulate pressure. behaviour still not perfected