Refactor Prefs to PrefService

Using a static utility method for Prefs is limiting - it provides no way
to override preference saving/loading behavior. This creates problems
when there are errors or negative interactions with the Preferences
implementation - for example, in MATLAB there are known bugs regarding
the Java Preferences implementation.

By converting to a PrefService we can now control this behavior more
precisely, as needed. The Prefs utility class will remain for now, but
will delegate to the PrefService when it has been created - allowing the
utility method behavior to be overridden similarly.
Update Prefs usage to PrefService

All Contextual classes that used the Prefs static utility class should
now be using PrefService.
ModuleService: add save/load item methods

Added API to save/load ModuleItems. This will allow Contextual classes
to move away from ModuleItem#loadValue and ModuleItem#saveValue, which
are not Contextual and go directly through the Prefs utility class.

Adds a default implementation in DefaultModuleService, using the
PrefService if able (which requires an AbstractModuleItem). If
necessary, still falls back to ModuleItem's saveValue and loadValue
methods.
Mark saveValue and loadValue deprecated

ModuleItem#saveValue and ModuleItem#loadValue are now deprecated in
favor of ModuleService methods, which can be called from a Contextual
environment and thus use the new PrefService API.
Refactor for ModuleService saving and loading

Updated classes that were using ModuleItem#saveValue and
ModuleItem#loadValue to use the appropriate ModuleService methods.