add assignment operator (operator=) to Array class

The assignment operator simply wraps whatever it is being assigned to.  Adding the assignment operator (and implementing it as to wrap) was necessary because of the strange way cython operates.  See the commit messages for details.

This was originally merged with master, then a bug was found and it was reverted.  This merge fixes that bug.  The program compiles and the tests run without error.