changed face.neighboring_regions_ to std::vector

for being conceptually dubious.
How does a three-way border between three regions
   work? Right now I feel like it makes the most sense
   for it to be two faces that are marked as neighbors
   (not in the current sense because neighbors are
   required to provide the boundaries of this face,
   but as an extra case), and that'll mean that a
   face can be incident to arbitrarily many regions.
renamed ambiguous function
fixed trivial mistake
Implemented (compiles, didn't test) queueing events

Should be complete except that I haven't actually
   implemented restricting collisions to the actual
   bounds of the faces/edges (right now using the full
   planes/lines)