Correct string length & name in visual mode Vds command

this is a partial fix for #1621.
Truncate Vds string value to selected field length

Another piece of #1621
Correct VdS when operating on a selected region

- only accept \0 terminated strings
- unify code mostly with style of Vds. Not strictly needed
  when only \0 terminated strings are accepted.
- don't care about block boundary. Upper code already defines
  the region for us which may or may not be a block.
Another piece of #1621.