Adding dispatch, a portable lightweight argument parser