Pass a named source when getting current
Process and trim topology of the circuit before solving.

Certain circuits, such as those with disconnected
components or dead-end branches, we causing non-invertable
matrices, which in turn meant that the circuit could not be
solved. This seems to have been fixed by analyzing the
circuit before hand and trimming off nodes that are
unreachable from the reference node. It is not clear
to me whether this is the correct general solution to this
problem.
Rename "label" to "id", since we require it to be unique
Make magnitude and angle properties of Complex Numbers
Return 0V or 0A when querying a circuit that throws errors