buffer_get_token copies data from b to x[0], x[1], ...,
x[len-1] until len bytes have been copied or one of
charset[0], charset[1], ..., charset[setlen]
equals the last byte that was read. buffer_get_token returns the number
of bytes read or -1 on error (setting errno appropriately).