Add a localopt for a simple store-after-load case.

If a Store uses the value and memory output of a Load just before it, and
shares the same pointer with the Load, the Store is killed.
C99 cleanup.
Speed up parallelize_mem.

The parallelization functions now keep track of all visited nodes, and do
not visit any node twice anymore. Hopefully, this finally makes
parallelize_mem polynomial in time.