Bug fixes

Bugs were discovered while working up a Quantum Fourier Transform
example.

  - The descriptor syntax for CU listed bit indexes in ctrl tar order
where everything else seems to go tar then ctrl, so this was
changed to the more uniform {"CU",<op>,tar,ctrl}.

  - The RnParams function now checks for nearly zero imaginary
components and drops them. This guarantees the resultant vector is
Real as required by the parser.

  - Excess double quote removed from CU print

  - RnParams and phaseAmpParams now compute global phase and SUafy
    operators in the same way
v0.9.1 bug fixes

Apparently there was no circ2mat for QIRseq, that's fixed.  qcc
now works in a more top-down manner (see release notes).  UZERO,
the table of init values used by skalgo, now introduces the "I"
gate when the identity approximates a gate. This occurs when
global shift operators are used (all of which have SU(2)
representation as I).  Eventually, it'd be good to ignore/remove
any occurrence of I.
Added the QIR gate factory function QIR.

The function QIR can be used to construct QIR gates.  This
single point of access to QIR construction is the first step
in circuit construction without parsing descriptors by means of
horzcat (i.e. [a,b]) methods on QIR gates.  QIR still needs to
be tested for error checking.  All the usages of QIR need to be
documented in the usage text as well.
Added horzcat method to QIR objects

QIR circuits should now be constructable using matrix like syntax,
i.e. horzcat or [a,b,...] and the QIR factory. All horzcat methods
need unit tests. Some crude testing was done in the REPL.  This
means of top-level, QIR circuit construction feels much more
EDSL than compiling descriptors.

A bug in QIR was corrected.
Added ctranspose methods to circuit classes.

In addition to a few bug fixes.  The ctranspose operator
was overloaded for all circuit classes. The effect of this
operator is to invert the circuit/gate, i.e. reverse order
and inverse operators. The method needs unit tests at all levels.
Some ad hoc testing was done at the REPL.
Changes to QIR and horzcat for seq. construction

A no-arg call to QIR no produces an empty circuit. The horzcat
method for QIR object now handles concatenation with empty circuits.
These two items combine allow for the construction of singleton
circuits with [QIR,a] or [a,QIR]. Unit tests are still needed, but
some crude testing at the REPL was carried out.

Changes were also made to horzcat so that the only case that
produces nested sequences is circuit-circuit concatenation.
Gate-circuit (and circuit-gate) concatenation will add the
gate to the top level of the circuit's sequence. Testing
 is still needed for this functionality.
removed debugging output from horzcat
Testing for ctranspose. Resolves #14 . Bug fixes.

The ctranspose methods now have tests.  Testing was done
for abstract circuit classes and any classes with non-trival
ctranspose implementations.  This feature is particularly
important until Issue #15 gets worked out.  Users wishing to
invert a parameterized, single qubit gate should do so via
ctranspose and not by computing parameters via the parameter
calculating functions.

This commit reverts measure circ2mat back to n qubit
identity. See issue #16.

Empty circuits now display empty sequences on a single line.
horzcat method testing and correcting for QIR

horzcat was tested and tweaked. Most notably QIRsingle,
QIRcU, QIRtoffoli, QIRfredkin, QIRswap, and QIRmeasure
now extend QIRgate, which provides a shared implementation
of gate based horzcat.  Several fixes were done to properly
handle empty circuits.  Circuit nesting must be done by circuit
horzcat. So [a,b,...] where a is a QIRcircuit.  This should
Resolve #13
v0.9.4 commit. Now with more EDSL construction

This updated alpha adds horzcat and ctranspose based
circuit construction options.  The overall feel is much
more EDSL as circuits are constructed in a similar
fashion to Octave vectors/matrices. This version should
resolve #14 resolve #13 and resolve #6 .