Add 'ext' paramter and default parameter behavior

If the `output` and `output_rule` are not specified or, `output` is a directory, convert file name with following convention:

* If `ext` parameter is set, use `ext` as an extension.
* Else if `executable` is not `node`, final file won't have extension.
* Adds `.js`.

もし、 `output` も `output_rule` も指定されていない、もしくは `output` がディレクトリだった場合に、以下のルールで出力ファイル名を決定します:

* `ext` パラメータが設定されていれば、これを拡張子として使います。
* このパラメータがなくて、 `executable` が `node` だった場合は、拡張子なしの名前になります
* どれにも適合しない場合は、 `.js` を付与します。