Split alloca liveness propagation into separate forward and backward phases.

This makes the code simpler, and avoids problems with the two directions
interfering with each other. This fixes asm2.test_sqlite and other failures.