Change Scheme API to allow for actor-based automata. Add an example

Add an example of an "actor based" approach using Langton's Ant (as
data/ants.dat and scm/ants.scm.

Add a "board-done" callable for actor based automata to signal they are
done mutating the board. This is somewhat cludgy, but otherwise each
generation requires a copy of the board regardless of the underlying
ruleset, approach, and implementation language. In other words, an
automaton that is implemented as rules that visit each cell do not
require this.

Also fix several severe bugs in C code:

1. Make board_copy not malloc, and just malloc before calling it
2. Make board_get_cell use modulus operator for values outside of a
    toroidal board in order to handle values that might be exceedingly far
    out of bounds.
3. Make SCM primitives always return SCM to avoid critical bug:
    Was segfaulting when procedures were returning void. This only
    happens in certain circumstances and is hard to pin down