Use AssetLoader, which is both faster and allows json assets
Keep agent.speed constant, pass desired speed to move()

Previous version was modifying speed every time wander() or other
methods were being called. The result of this was that if we called
wander() too many times in a row, the agent would slow down to a crawl.

Here we keep @speed as a property, but just move a desired amount by
passing a speed to move.
Add ability to define animated sprites for agent images

Agents can now define an animated sprite with one or more
named animations in place of a regular layer image.

See next commit for example of this.

Note that the animated-agent's movements is just an initial pattern
for how we can call the individual animations. It may change in the
future.
Add animation example
Add ability to define whether an image should flip; update models

Animal images can now flip based on their direction.
Add ability to define whether an image should rotate; update hawks

This allows an image to rotate based on the direction of the agent.

This only makes sense for top-down views.
Make BasicAnimals change direction in smaller increments

Now that we can visualize the changing direction of an agent (see
hawks and rabbits), the sudden direction changes look ugly.

This makes it so that a random wander will change direction by a smaller
amount each time, and a directed movement (movement towards a target)
will change direction by 1/20th of the angle each time.

Note: We should make the random wander nicer than a random walk, which
doesn't look very natural (e.g. pick a spot and move to it.)
Fix movement at edge of environment -- should bounce if not wrapping
Make viewLayer settable by species