Encapsulate submission data in constructor
Encapsulate submission data in constructor

Previously, `runSubmit` required calling `getter` type methods and
passing them back to the same type that gets them, resulting in an
awkward API. These changes help to reduce this burden, simplifying the
API and helping to make the submit cmd at a more appropriate level of
abstraction.

exercism/cli,exercism/cli