
- psMetadataItemAllocV:

  - re-wrote 'comment' portion to use psStringCopy
  - re-wrote 'name' portion to use vnsprintf to predict formatted string length
  - added psListAlloc to META_MULTI creation
  - value passed to META_MULTI must be NULL (type info is not available)
  
- psMetadataAddItem:

  the logic was wrong for MULTI and REPLACE, or perhaps the SDRS was unclear:

  - if there is no existing entry, the entry is added simply

  - if the existing entry is MULTI, the new entry is added as a node of MULTI
    - it does not make sense for both the new and old entries to be of type MULTI
    - allow replacement of the existing multi with new multi (not implemented)
    - if both are MULTI && !REPLACE: error

  - if new entry is MULTI, existing entry becomes node of the new multi. schematically:

    hash --> existing <-- list

    becomes

    hash --> new -> list -> existing <- list  

    - if REPLACE is set, drop the old one first?
    - behavior same if DUPLICATE is set or not

  - if DUPLICATE is set, create a new multi, make both existing and
    new entries nodes of that new multi:

    hash --> existing <-- list

    becomes

    hash --> multi -> list -> existing <- list  
                      list -> new      <- list
    
  - if REPLACE is set, remove the old entry, add new value

    - note: this adjusts the order.  we might need to be more careful.

