Fix bug where state changes would be dropped when a collided l1d miss occurred

The state change should be dropped if the transaction is promoted from read shared
to write invalidate, but not for other state transitions (for example, marking an
entry sent)
Remove l2_miss field from ring packet.
Add a few assertions