Add water wheels.

- Added comments to several of the View classes.

- Bug found in CalculatePotentials method. Will attempt a fix.
Add water wheels
Re-write CalculatePotentials
Still has bug from deadends.
Fix bugs. Some still remain.

-CalculatePotentials() was only looking at components in loops. But
if two loops did not share a component then errors could result. New
algorithm looks at all components and iteratively updates any that
have the potential at one end set, but not the other end. (Initially
there was a bug in this new algorithm, because it would update components
if either end had its potential set, instead of ONLY one end being set.)

-Circuit class made a point of updating the original circuit with the
same branch numbers used in equationCopy. But it was not updating the
original circuit with the currentDirections from equationCopy.

Pending...
-While generating loop equations for the linear equation solver, the
previous algorithm does not seem to recognize whether nextComponent ==
aComponent. Attempting to implement .equals() method...
Fix all known bugs.

- Fixed errors in Circuit class' CalculatePotentials(). Instead of asking
components for their voltages, voltage-drops are calculated on the fly
within CalculatePotentials(). This makes more sense, since the sign of a
voltage drop of a component is not well-defined without knowing which
end you are standing on. Also fixed the for-loop: put "break" in the
right place, etc.

- Removed the "voltage" instance variables from the Component class.
Replaced it with a battVoltage field in the Battery class. battVoltage
is a positive-definite quantity.

- Added an equals() method to the Component class. (or maybe I did
that in the previous commit...) Updated Component comparisons to
.equals() instead of ==.
Merge branch 'potentialBug'

Conflicts:
	CircuitVision/package.bluej
Re-add package.bluej