Add throw_match() assertion method

「 ```throw_match()``` 」 というアサーションを追加してみました。
```throw()``` のように、呼び出し以降のエラー発生を診る物ですが、こちらは正規表現にマッチするかどうかを見ます。
Vimのエラーのように、l10nに対応したエラーメッセージ、機械に対する可読性(「E121」とか)と人間に対する可読性(「未定義の変数です」とか)を共存させたエラーメッセージを対象としたい時に便利かと。

また、throw()と処理を共通化させる為に、エラーのアサーション処理を1つのモジュールに括りだしています。
ここは`throw`ではなく`throw_match`ではないでしょうか