dialog: refactored json serialization for dialog profiles

- there is no restriction to add a dialog in same profile many times
  (could be with/without different value). Current serialization
  resulted in having many fields with same name in an object structure,
  which was ok for local json handling, but failed for various external
  tools
- profile structure extended in memory with unique id, expires and
  flags, to be used for better identification of the profile cell
- note: upon kamailio upgrade, old dialog profiles are no longer loaded, as the
  json structure is now different
dlg: keep dialog value 0-terminated in memory

- more flexibility in searching/matching
lib/srutils: add sruid_next_safe() function

- checks to see if the sruid was initialized by same process and if not,
  triggers a reinit
- pid is stored inside the sruid struct
dialog: add a unique id for each profile item

- internal sruid is used for generating uids
dialog: internal refactoring to allow adding remote profile

- this is a profile item without a local dialog
- allow opperations to add or remove such profiles
dialog: added cleanup of expired remote profiles via internal timer
dialog: new config function - dlg_remote_profile

- dlg_remote_profile(cmd, profile, value, uid, expires)
- manage non-local profiles from configuration file
- cmd can be add (insert a remote profile) and rm (remove a remote profile)
dialog: documentation for dlg_remote_profile() config function
pua_dialoginfo: proper jump to end of the structure

- void has no standard size
- descovered on a report by Charles Chance
dispatcher: option to limit the number of items in dst_avp list
dispatcher: regenerated the documentation for update on ds_select_dst()