Implement PreferenceDialog and improve API of Shells

Currently there is PreferencePage that supplies API for wrapping shell
* PreferenceDialog and it's predecessor should implement actions like:
  * open();
  * isOpen();
  * cancel();
  * olk();