Refactor

Looking at the code explorer, I realized that RunStorage had two very
different interfaces: one for those below it, so they could add runs;
and one for those above it, so it could be visibly displayed. The latter
of these two already had an interface, so an interface was added for the
former to help limit the view of classes that add runs. It also means
that RunStorage doesn't need to be public anymore.

- also rename GbaImages to Gba.ImageUtils so it could be in the Gba
namespace.

- also moved VariableLengthDataRun into the Gba namespace, as it is only
used by Gba code.