Refactor

Very soon, I'll need the DataRuns to be able to return more complex
visuals. It's not enough for them just to use Geometries, but most of
them still will. I've broken that functionality out of the RunStorage
and moved it into a new ElementProvider interface with a default
implementation that uses Geometries.