Bugfix for add_gate_pulses

Make sure the attribute is there before you use it.
Fix branching instructions for targets with offsets.

Need to resolve the offsets before broadcasting the abstract instructions to
individual channels, since the sequence count can change in the broadcasting
and flattening process.

Also, when a pulse block is broadcast, all the resulting channels pickup the
same label. When resolving symbols, be sure to use the *first* instance of any
given label.

--BRJ and CAR