zDatacube.calcHierarchyMeta(): Hierarchically aggregates metadata.
zLayout:
Documented .zoom().
Created .unzoom(), which undos .zoom().

zDataCube:
Changed .listSpaces() to use x.mask instead of (baseS, maskS) arguments.
Replaced .getMetaObj() with .getMeta("all").
Created .forSpaces(), which runs a function for each space.
Unified .calcMeta(), .addCalcMeta(), .calcData() and .addCalcData():
  Changed argument order from (type, x, mode) to (mode, type, x).
  Changed argument to accept v1, v2, v3 arguments, to be passed on to za.calc().
  Removed noFilter argument (that is now handled by the individual za.calc() algorithms - simple ones filters, complex ones do not).
Simplified .findFamily() functions:
  Replaced .findAncestors(), .findDescendents(), .findSiblings() with .findFamily().
  Removed .getParent(), .getChildren(), .getSiblings(), .getAncestors(), .getDescendents(), .getRelationship(), .getGeneration().
  Changed .findParent() and .findChildren() to use .findFamily().
Rewrote .calcHierarchy*() functions:
  Implemented "stacked" mode for .calcHierarchyMeta() and .calcHierarchyData().
New iterator functions:
  .forPos(), .forSpaces(), .forGenerations(), .forMeta(), .forData()
Removed:
  Shortcuts - .findName(), .get(), .getName(), getVal()
  Redundant - .liveFilter() (replaced with .findAllMeta() in .findFamily())
  Unused - .listData(), , .autoAggregate(), .madroxClone()
  Shit - .importCSV(), importSheet() are too complicated. .importStrip() is a much cleaner and more robust format, and will be used exclusively from now on.



Signed-off-by: Keith Ng <keith@point.org.nz>