Fix fr_print_string's behaviour to work with buffers of exactly the right length

Else we need to add more hacks in fr_print_string_len if result < 4 pad result etc... and that's just nasty.
Minor formatting
Fix vp_aprint to always print escaped versions of strings, this lets the rest of the code deal with embedded NULLs correctly.

Add tests for escaping and unescaping special chars.