Add Document copy() method

Might be useful in tests, but otherwise I'm not documenting it.
argval_t => plcb_OPTION
Make enum list of argument types shorter
Finally make the first set of tests pass. Yay!