Did a chunk of work towards implementing multiple zeroes, but it's not
nearly done, or working, yet.  It includes some weird code to allow for
efficient interfacing with the array-based android matrix/geometry stuff
while also supporting my own weird complex/affine geometry stuff.
Bizarre, just how I like it.
Added some observer/update stuff for changes in transformation state.
Just about ready to hook up to drawing and touch logic.
Almost to a working state.  Just need to hook up the c-side stuff (added
a direct buffer to pass the params - overkill?  Maybe) and maybe clean
up some stuff...
Jerryrigged it together - pretty much ready for trial by fire.
Couple little fixes.
Finished refac of awkward complex "view" of float array into actual
ComplexArray Collection and ComplexArray.Element implements IComplex and
Iterator<IComplex> which functions as the "view" or reference/whatever
to an array element.  Code is slightly less weird now, which makes me
happy.
Checking in more refactoring with ComplexArray and ComplexElement
Couple little bugfixes.
More futzing about - added some logging, fix a few things.  Still needs
a lot of work.
Did some stuff... added way to much logging.  The param movement looks
good - last test the pan/zoom was screwy.
More poking around.  Fixed a bug, so it sorta works a bit more.  Need to
clean up the horror that ComplexArray etc. have become in the name of
"performance"
Teeny little improvement: rather than using iterator and for(:) loops I
opted to add .apply(action) methods to ComplexArray for iterations, and
(mis)use a single ComplexElement adaptor to do the iterations.  Thinking
about making TransformationState just supply a bunch of actors instead
of doing the stuff in house.  Added some logic to delay transforming
until matrices are updated once.
Went with the apply approach, tried to clean up stuff a bit.  Still pan
and zoom are weirdly stuck.  Significant shuffling of
TransformationState.
Fixed the translation issue - problem was that it was unnecessary to
explicitly apply the newly updated affine transformation to the params -
rather it was only necessary to update the transformation itself, and
notify observers to rescale and draw.  Now something is wacky with the
params - looks a bit like there is an extra zero or something.  Not as
bad though, getting close!
Fixed the y-coord ignored thing.  Something about bitshift and operator
precedence.
Alrighty!  Blaschke products are working.  You can drag the red dots
around to move the zeroes and add more, etc.  Needs much more work
before release.  Multitouch isn't quite working yet.  Performance needs
work.  And UI elements need work.
This is a (messy) commit right after I got the Blaschke products for
degree > 1 working (had forgotten to add the lhs and rhs to the copy
constructor).  There is a ton of logging and the code is ugly as sin.
So after this begins the cleanup, optimization, etc.  But as of now, it
works!
Put in one last fix for the lhs and rhs to allow composition, cleaned
out logging and various mess, so this is the last clean checkin before I
merge to master and we are in the home stretch to release