Make initial persistence of options work again

The OptionsService itself now takes care of calling load() on
all of its singleton OptionsPlugins when it first creates them.
OptionsPlugin: add reset() method

This method clears the option values from persistent storage.
And the OptionsReset plugin now simply calls that method.

This makes it easier to clear options using the core API,
rather than depending on OptionsReset from ij-options.
OptionsService: add reset() method

This method calls OptionsPlugin#reset() on all its OptionsPlugins.
Add simple OptionsService/OptionsPlugin tests

They are rather crappy right now, especially the testPersistence (see
FIXME note; also, two such tests cannot run concurrently), but at least
it is a start.
Merge branch 'fix-options'

This branch fixes critical bugs with the new singleton-based
OptionsService implementation. In particular, it fixes initial
persistence of options to work again, which sidesteps a problem with
the foreground and background color tools.
AbstractJHotDrawAdapter: fix method order

The AbstractJHotDrawAdapter#toShape method should go at the top, not at
the bottom with the private methods. See:

http://developer.imagej.net/coding-style#Ordering_of_code_blocks
AbstractJHotDrawAdapter: avoid infinite event loop

We now set a figure's attribute value only when that attribute does not
already match the new value. In this way, we avoid triggering a figure
attribute change event which triggers a display update which triggers a
canvas update which triggers figure attribute assignments...

The real mystery is why this bug only showed up recently!