remove startup(); cosmetic spotlight changes; add spotlight to template; html changes to canvas and layers div
add setFPS, use in template and gridpath
add cancelAnimFrame; fix docs
Complete rework of model animation with Animator class
Animator: multiStep, use in models: template, ants, diffusion, linktravel, tspga
Breeds: agent/link subclasses, agentsets manage breed and agent pairs
Readme: fix for stupid Chrome/GitHub war. Thanks to rawgithub for help
Adjust to new Breeds architecture, misc updates
- Sprites now can be either data url image or canvas context; shapeToCtx->shapeToImage
- Add once() to model, animator to take a single step/draw pair
- Allow modeler to add/modify layers easily via Model::contextsInit
- Simplified model @contexts handling
- Spotlight simplified; removeSpotlight->setSpotlight(null)
- Fix Model.createBreeds util to manage linkBreeds correctly
- setText/LabelParams: error if agentSetName is not in contexts; adjust for breeds
More Breeds work, performance, complete agents/sprites rework
- getWithProp -> getPropWith; resetBreed->changeBreed
- Remove: "s." alias for ABM.shapes; staticColors model optimization; raw img as drawing hack
- colors: now cache color string as color.str.  Huge GC and fps win.
- modify all color utils to manage color.str
- breeds.own() and breed.ownVariables array for managing unique breed variables
- shapes completely redesigned
  - use module pattern rather than simple object, with closure for private functions
  - move agent drawing into shapes and sprite drawing functions
  - add "shortcut" method to shapes that can draw without 2d transforms (translate,scale,rotate)
  - add image shapes, with short cut and sprite creation.
  - add coffee cup as demo image shape and sprite
  - the add() function fully modified for sortcuts and images
  - removed shapeToImage, no longer needed with img shapes
  - added util.resizeCtx which "grows" a ctx w/o loosing the current content (used by sheets)
Fix template model, minor shapes refactor
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
Revert "Merge branch 'cc-stepFrequency' into cc"

This reverts commit fb1395dec78b7d5d3b5f3b65a7a2a3c940e57661, reversing
changes made to dfb3db36b26ecebc7c3041dafcaeb0e7e91b8c85.

Conflicts:

	agentscript.js
Merge branch 'master' into cc

Conflicts:
	agentscript.coffee
	agentscript.js
	agentscript.min.js
	agentscript.sh
	agentsets.coffee