A bunch of optimizations

Notably:

* Breeds are now tracked so that looking up all turtles of a particular breed doesn't take O(n)
* Unnecessary function calls have been removed from `fd` and `jump`
* `updated` has been cleaned up with a switch statement
* Breed agent-sets are now fully supported. Previously, if you stored one in a variable, the agent-set the variable pointed to wouldn't mutate properly.
* Fixed a potential bug wherein `Iterator`'s index was a class-level variable instead of instance-level

@frankduncan and @SethTisue should look at this.