[api] -Change: op_cookie for tag_eq and tag_match; optional alloc/free function for the cookies; UPDATE PATH: add the exta void * arg in tag_match and tag_eq callbacks and ignore the value; leave the new callbacks NULL -Change: op cookie alloc has an enum for operator type -Change: custom_op is a const char *, both cookie alloc and free gets it -Add: implement match cookie free calls [doc] -Fix: typos -Fix: tutor: long example for the / should do the same as the short one -Change: replace contact info from direct email to indirect through html to fight spam -Add: document the custom operator [helper] -Add: generalize traditional integer operator parsing from gtfxind -Add: generalize intop comparison (macro to keep things type-independent) [syntax] -Fix: terminate match pattern -Fix: detect and properly indicate unterminated match pattern -Change: relax rules so _ is accepted in names without quotes -Add: grammar and API for custom operators -Add: save sep char as custom operator for the ~ match tag_expr [util] -Add: gtxfind - similar to find(1) but uses gentrex syntax [vm] -Fix: don't call tag_eq or tag_match on NULL node -Fix: [] should save NUT just like () does so that || and && within a [] does the same as if it was ([]) -Fix: don't attempt to execute broken bytecode -Fix: if user API doesn't offer tag_match or tag_c_op, return false -Fix: printf format string compiler warning on different int sizes