remove conceptual circuit and associated tests

having both a conceptual circuit and quantum circuit wasn't good
because one had to keep instances of a quantum circuit consistent
with associated instances of the conceptual circuits.

the quantum circuit might be complicated because it's 3D and works
in the complex number space but the individual gates are objects
that have symbols as properties - these can be used to simplify
working with quantum circuits
fix quantum circuit constructor

the grid was the wrong size and some variables in the constructor
could be instance variables
import pprint to print quantum circuits

ppprint(self.grid) prints each step on a new line but print(self.grid)
prints without newlines so pprint is clearer
implement skeleton quantum circuit tests