zDataCube:
  Put .getName() back in again.
  Created .getFamily(), which allows the use of .findFamily() functions with .getMeta().

zAxisConstructor:
  .setShown() now uses maxNotches instead of whatever it was that zt.getMaxFactor() was trying to output (largest common factor?), which was stupid anyway.

Removed zt.getMaxFactor().
zLayout:
  Removed .union(), .innerUnion(), .setWithin(), .contains().

zDrones:
  Improved documentation.

zDataCube:
  Removed .disaggregate() and .aggregate().

zAxisConstructor:
  Now uses last point as reference (i.e. Labelling starts from last point and works backwards).

zAxis/zScrollAxis:
  zAxis/zScrollAxis now uses clip-rect to hide labels which are out of range rather than the old dynamic show/hide system, which was ludicrously complex.

zPlot:
  Removed
    .boxIntersection()
    .boxUnion()
    .boxRatio()
    .isInBox()
    .readRawLayout()
    .readLayout()
  Moved to zObject
    .addPoints() as .add()
    .subtractPoints() as .subtract()
    .roundPoints() as .round()
    .pointsEqual() as .equals()
  Retired UTM tools.

zArray:
  Replaced .counter() with .count(), which generates a list with all the possible counts.
  Changed .compareTests into a function, and made it understand max/min/closest and pass a special flag back to find functions.
  Standardised find/get/remove/replace functions.
  Added
    .closest()
  Renamed
    .switchOut() to .replaceAll()
    .asIndexedObjects() to .index()
    .reverseFind() to .findLast()
    .roundTo() to .round()
  Removed
    .reverse()
    .getType()
    .getDuplicates()
    .symmetricDifference()
  Retired combination functions.

zObject:
  Removed
    .deepGetProperty()
    .map()
    .sort()
    .addColour()
    .subtractColour()
    .isWhole()
    .isEven()
    .sayBetween()
  Renamed
    .roundTo() to .round()
    .toSignificantFigures() to .roundToSF()
    .calcMagnitude() to .magnitude()
  Retired
    .fixPaperOffset()
    .getPaperSize()
    .setPaperSize()
    .getWindowSize()
zLayout:
  Added .innerBox
  Removed
    .getRect()
    .getBox()
    .alignmentToDeg()
    .getInverseAlignment()
    .getAntiAnchor()
  Moved
    .getSVG() to zRectangle

zDataCube
  Renamed all "hierarchy" functions and variables to "tree"
  Renamed parentPos and childrenPos to parent and children

zPlot
  Removed
    .areaToRadius()
    .alignmentToDeg()
    .degToAlignment()
    UTM tools
  Renamed
    .calcDist() to .dist()
    .calcDeg() to .deg()
    .calcVector() to .vector()

zArray
  Added
    .add(), which uses $.merge()
    .isArray(), which uses $.isArray() and replaces "x instanceof Array"

zObject
  Renamed
    .removeProperty() to .remove()
    .listProperties() to .list()

zTools
  Renamed
    .getType() to .type() and made it use $.type()
    .mid() to .calcMid()
  Removed
    .fixPaperOffset()
    .getPaperSize()
    .setPaperSize()
    .getWindowSize()
  Added .isColour(), which checks colour instead of .getType()
zLayout:
  Removed .setByBBox() and merged its functions into .set().
  autoWidth/autoHeight are now explicit properties, rather than width/height == "auto".

zSimpleDrone:
  Removed .setOrders() and .addOrders().

zSwarmConstructor:
  Removed .setOrders() and .addOrders().
Split visualisations into their own .js files.

Used $.getJSON() to load data files and added JSONerror() to catch errors.

zSimpleDrones:
  Renamed .clearEvents() to .stopMouseEvents().
  Added .startMouseEvents() to load mouseEvents at the drone level rather than the swarm level.

zDataCube:
  Added rawData argument to enable data load on initialisation.
  Added .autoImport() to distinguish between strip and protocube.

zSwarmConstructor:
  Removed .enableEvents() and .disableEvents().

zTools.getFactorOfTen():
  za.max(undefined) returns -Infinity, so .getFactorOfTen() sometimes get called with -Infinity, which results in infinite loop (very bad!).