se: Use classes for Space, Simulation, & Renderer

This refactors the logic for generating and rendering spaces into
separate classes.
se: Render double sided space
se: Add a "Randomise" button

Pressing this button generates a new space.
se: Implement point visualisation mechanism

This patch adds point visualisation to the Renderer. The
Renderer.addPoint() method can be used to add a visualisation point,
which is rendered using a Sphere geometry. Note that this is an
incredibly inefficient approach, and will choke most systems when
dealing with large (> 10^4) numbers of points. This will need to be
gutted and replaced with something more lightweight over time.
se: Use a black background for space visualiation
se: Default to smaller 128 x 128 space
se: Add an analytics table

The analytics reported:

  Iteration count
  Maximum space explored
  Current
  Best
  Worst
  Average

An efficient way of tracking the *actual* space explored would be very
useful.