Cleanup DCE actions and remove the replace map
Summary:
DCE actions were a little funny where the replacement bytecodes were stored in
a side map. This makes sense if most operations have no replacement ops.
However a compact vector is a single pointer, so it seems not too costly to keep
it alongside the dce actions.
Also while we are at it make the dce perform and combine action logic not use
quite as many `first` and `seconds` where it is hard to know what is happening.
Reviewed By: ricklavoie
Differential Revision:
D20995750
fbshipit-source-id:
80b63efaf63c6798a444363221db70fcfbc141b6