Big rewrite: use set_hash_option template and set_option macro
the template is for create parameter, the macro is for calling Set*
methods
Big rewrite: use app_protected function for better check that wxApp need
to be started first