update pdlex design
update doc, make context names more import-friendly
move optional capture groups into the second param of the `:token` action