Refactor model optimizations, Add number prefix to docs so are in order
Fix readme for new docs names
Cleanup and Refactoring for 1.0
- class AgentSet:
  - constructor: same for all agents sets
  - setDefault: install class variable and value for any agentSets
  - own: install class variables for unique agentSet variables by modeler
  - ownVariables: keep an array of names of own variables for UI/FireBase
  - breeds, or agentSet subsets, available for all agentset instances
  - add/remove: breed aware
- Model:
  - create ABM.world, Patches: use world for creating patches set
  - globals: a list of names of variables created in setup(), for UI/FireBase
  - add patchBreeds as well as agent/link breeds
- Sprites:
  - Keep index of all created sprites to avoid duplicates
  - agents.sprite and agents Agent::sprite default sprite: used if present
  - agents.setDefaultSprite: install Agent::sprite shared by all agents
  - agent.setSprite(sprite) set a unique sprite for an agent, setting color, shape, size too
  - avoid dataURL cross origin problem when enlarging sheets
- Util:
  - randomMapColor: limit r,g,b to a set of values rather than all ints in 0..255
  - randomBrightColor: randomMapColor w/ oneOf [0,127,255] for r,g,b
- Create source map for agentscript.coffee
patches: importColors, importDrawing add async onload function
Begin DataSet basic utilities
- Patches:
  change order of patch creation to be from top-left, to match datasets
  add patchIndex(x,y), convert patchXY & pixelIndex to use it.
  convert drawScaledPixels suite to use new pixelIndex
- Util:
  add function loadFileAJAX(name) for data sets
Fix word/byte alignment for data sets/images
DataSet, second round
- pull request: Carter Charbonneau
    remove optional null fcn args like f=null, coffeescript creates unnecessary
      if (f == null) {f = null;}
- Refactor importColors/Drawing w/ installColors/Drawing works w/ existing image
- Rename: @patches.patches2Bits->@patches.toBits; ditto bits2Patches/fromBits
- Model.reset refactoring; setWorld method for world object
- Animator: reset
- Contexts reset allows new sizes, world
- Patches can be resized, with fractional size, by reset
- Util: new array methods, typed->js array converter
- importing keeps cache for reset/restart optimization
DataSet, third round; prep for restructure of project
- util:
  randomNormal: added gaussian/normal distribution random function
  toFixed: return the array, not string; update places where used
  Array::indexOf: simplified shim.  Remove?
  onload callbacks: modify so only set if fcn exists. B4 was set as no-op
Restructure for cake:
- Convert *.sh scripts to cake/Cakefile, delete *.sh
- move source files to src/
More Cake restructure; remove .sh files
More Cake restructure; remove 2 netlogo dirs
More Cake restructure; remove 2 netlogo dirs
GitHub restructure and misc minor fixes:
- agentsets.own: input now is mixed names and name/default pairs
- Cakefile: try to help with maps, still wonky in CoffeeScript
- Convert to Math.atan2.  Doh!
- template.html -> models/
- New layout: .gitignore: ignore all toplevel .js, .map, .coffee files
- Lib: add .map; remove .coffee
- Tools: coffee-script.js
- New file layout:
    Cakefile    cake file for build, docs etc.
    LICENSE     GPLv3 License
    README.md   This file
    docs/       Docco documentation
    extras/     AgentScript extensions
    lib/        All .js/min.js and .map files
    models/     Sample models
    src/        Component .coffee files for agentscript.coffee
    tools/      coffee-script.js and others
More project restructuring, no code change
Next round of project restructure
- source maps tested, work in chrome
- added ascDataSet to data.coffee extra
- slight restructure to 32bit patch pixel drawing
- agentsets/model: asSet methods now take setType
- world: added min/max X/Y cor: +/- .5 for agent coords
-   width/height -> pxWidth/pxHeight
- patches.pixelXYtoPatchXY .. used by mouse.coffee
- removed test canvas from all models, no longer relevant.
- util: rgb <> hsb conversion utilities
Add model startup(), add async helpers, work on GIS, add GIS demo
models:
  add data/ dir
  add gis model
  removed <body onload ...>; use setupAndGo in script.
DataSet:
  use resample for setting patch variables
util:
  fixed() to convert float number to given precision
  removed ownVarKeys added ownValues
  add isDone flag to import Image & XHR
  add filesLoaded, waitOn, and waitOnFiles using isDone
shapes:
  removed cup image, moved to demos
agentsets:
  ABM.patches etc replaced by @breed; ABM.patch etc replaced by @agentClass
  patch draw optimized if a single color using u.fillCtx ctx
  refactored importDrawing to use installDrawing for filling drawing with existing image
model
  resetAnim renamed to resetTimes
  added startup, setting @modelReady flag managed by waitOnFiles
  move setup out of constructor
  added setupAndGo, calling setup & start, which waits until startup is done
Upgrade for first gis project
Cakefile: add extra/ docs processing
docs: add extras/ docs; update all source docco comments
models: move gis.html & data to sketches/ (github can't run it)
DataSet:
  - asc and image datasets now have two function each,
    one to turn an image/string into a dataset, the other to use
    import image/xhr and then call the image/string function.
    imageDataSet: turn image into dataset, importImageDataSet using import
    ascDataSet: turn asc str into dataset, importAscDataSet using import
  - toDrawing: turn dataset into image and call patches.installDrawing
  - imageDataSet: rgb default, alpha usable thus 24 & 32 bit datasets
Animator: refactor
Model:
  - add toggle for animator
  - setup called at end of ctor again; remove setup from setupAndGo
  - reset: stops anim and restarts if was running on entry
Deleted unused files
DataSet refactor and updates, Model globals() method
- DataSet:
  - New classes for ImageDataSet, AscDataSet
  - Simplified async load of Image/Asc DataSets
- Model: add model.globals(array); NetLogo declaration idea
Debugging/refactoring for NNMC project
- Model:
  - move style: position:relative into ctor
  - start: now waits for modelReady; thus removed setupAndGo, not needed
  - add @drawing.clear()
  - reset: remove black fill of patches ctx
  - ctor:
    - defaults for all parameters other than "div"
    - default isTaurus changed from true to false
    - contexts: add default text parameters tp each context
  - remove label params (moved to agentsets, label, labelColor, labelOffset)
  - remove text params (use util.ctxTextParams)
  - remove setRootVars, replace with debug(@debugging = true)
  - draw: add "force", defaulted to anim.stopped.  Forces draw to occur.
- DataSet:
  - add setSampler: (@useNearest), ctor defaults useNearest to false
  - toImage: add normalize flag and alpha default to toImage()
  - coordSample & patchSample methods added
  - convolve: add factor parameter
  - slopeAndAspect moved from AscDataSet to DataSet, useful for ImageDataSets and others
  - toString: (fixed = false, p=2) -> toString: (p=2, sep=", ") p<0: don't format.
- util:
  - clone: add begin/end for creating subset of array
  - add aProp(array,prop): return an array of a property values of an object array
  - histOf defaults added: bin=1, f=(i)->i
  - add lerp2: (x0, y0, x1, y1, scale) for 2D linear interpolation
  - createCtx: store ctx in newly created canvas
  - ctxDrawText: add "setIdentity=true" argument for push/pop of identity transform
  - remove aMod
- AgentSet:
  - own: simplify interface as a string of names, no defaults
  - remove getProps, setProps
- AgentSets:
  - patches.importDrawing, use => fat arrow
  - remove agents.setDefaultSprite
  - add labels to agents/links, add labelColor, labelOffset properties
  - remove setDefaultXXX val, use setDefault xxx, val instead
  - add patchXYtoPixelXY to complement pixelXYtoPatchXY