Adds CompositePulse type.

This add the ability to have a multi-entry pulse within a single pulse block. At
present, these composite pulses are restricted to acting on a single channel.
So, it cannot yet contain a echo CR pulse, for example. However, it does allow
defining pulses with flat sections by using the addition operator.

I have made an effort to test this, but someone has broken the test suite
again...