fix DACHS_KWD() macro

previous implemntation is failed.

text : varhoge
parser : DACHS_KWD(string("var"))

when parser parses, it parse "var" and notice that next parser fails.
the result of parsing becomes "var" and it doesn't fail.
add DACHS_KWD_STRICT macro and remove redundant parsing

DACHS_KWD_STRICT parses its argument twice. So, I use DACHS_KWD if the
result of argument's parser is not used.