Tweak method param values for Persistence classes

Persistence concrete classes used to take one (or two strings) for
constructor parameter values. By themselves, strings say very little
about their purpose. Constructors (and one method) were updated to take
more descriptive parameter types.

ComicBookPersistence, ProductPersistence, VideoGamePersistence, and
ItemCategoryPersistence now take a DirectoryInfo and Profile as
constructor parameter values. MigrationRunner.Run() does too.
DirectoryInfo replaces a directory string parameter, and Profile
replaces a profile name string parameter.

ProgramOptionsPersistence now takes a FileInfo as a parameter. It
replaces a file name string parameter.