Split update loop in to 2 loops so all behaviours see the previous state of the system when deciding what to do.
Fix bugs in cohesion and alignment. Cohesion wasn't taking our position in to account, alignment wasn't considering us either.
Trash old separation function, not used
A bit of tweaking, lower the priority of cohesion so we don't overlap