(1) Fixed miscellaneous bugs in SUBSASGN, SUBSREF, ACCUMARRAY, ALL, ANY, CIRCSHIFT.
    For the most part, these bugs affected rather uncommon use cases.

(2) Made single-colon operations OBJ(:) more memory efficient.

(3) Made certain operations much more memory efficient, among them
   SUM, ALL, ANY, MEAN, MAX, MIN, CIRCSHIFT, CAT, and null assignment.

   These operations were likely to encounter out-of-memory conditions when working with
   ndSparse objects OBJ for which MAX(NUMEL(OBJ)./SIZE(OBJ)) is very large.
   The new implementations are much more memory conservative. An unfortunate 
   side effect, however,  is that these operations can now be somewhat slower.

   Since the old implementations are still good (and sometimes faster) when memory allows, I
   have taken a number of steps to continue making them available. For one, I have introduced
   corresponding methods SUMML,ALLML,ANYML, etc... which will run the older, "memory-liberal"
   versions of these operations. If your system memory allows, you can try to use them 
   to obtain faster speed. 

   I have also introduced a Constant class property called "oldstyle" which is logical
   false by default. If you edit ndSparse.m and set this to true, the old, memory liberal 
   versions of things, will ALWAYS be used, meaning that SUM and SUMML both do the the same
   thing. This gives you the option of falling back to the old implementations, of SUM, ANY, ALL
   etc... if you really prefer them.

   You should only use the old style implementations if you are confident that
   N=MAX(NUMEL(OBJ)./SIZE(OBJ)) isn't going to get too large for the objects that
   you are working with. "Too large" means that your computer cannot fit an ordinary 
   MATLAB N-column sparse matrix in memory.

   