Preferences: new "batch" mode for reading/writing many preferences at once

Relates to #148.

The preferences engine was originally built atop old INI functions,
which required a round-trip out to the hard drive for any property
read/writes.  That behavior was never updated to account for the
benefits of the new XML preferences format.

Functions that know they will be reading/writing a bunch of properties
can now activate a "batch" preference mode, where all read/writes to the
master preferences file are suspended until the batch update finishes.
This improves performance in several places:

1) Program start-up
2) Opening or closing the Tools > Options dialog (which reads or updates
all program preferences)
3) Opening or closing the Tools > Plugin manager dialog (which reads or
updates all plugin-related preferences)

While preference saving should now be mostly instantaneous, "just in
case" I've made sure to disable all relevant forms until processing
completes.

Thanks to @Kroc for raising this issue.