Fix transparency bugs, remove topLeft, layers positioning (use css)
layers: absolute rather than fixed positioning; demos: 0x0 test canvas
Add ability to attach a spotlight to an agent

Calling Model.setSpotlight(agent) will add a "spotlight"
to an agent, similar to the NetLogo "follow" function.
This allows a user to easily follow a single agent.

The spotlight is removed when Model.removeSpotlight()
is called, or when the agent dies.

There is also a shortcut for Model.setSpotlight(breed),
which will pick a random member of a breed.
Merge pull request #4 from concord-consortium/cc-spotlight

Add ability to attach a spotlight to an agent
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