define a function for widget-create with common options

ボタン以外にもactionオプションを付けたい場合があり、それを実現するのに加えて、以下の修正を行なっています。

* `help-echo`オプションも全widgetで指定できるように
* `widget-create`時の`apply`を使った冗長な記述の簡略化
* ボタンにも`wmvc:widget-focus-to`できるように

上記のために、`widget-create`を行う専用の関数を定義しました。
受け取った可変のキーワード/値のペアを値が`nil`以外のものにgrepして、`widget-create`しています。

`wmvc:tmpl-make-widget-button`での`wmvc:context-widget-map-add`呼び出しは、
他のwidgetと同じように`name`オプションの値にしました。
`action`オプションの値を使っていたのは何のためなのかわからなかったのですが、まずいでしょうか？
こちらで動作させている感じでは、問題なさそうです。