Add a few more test cases (from the man page)

Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Support more arguments for defs
Add jvp_utf8_is_valid1() utility function

Just like jvp_utf8_is_valid(), but validates just one codepoint, and it
optionally outputs the length of that one codepoint in bytes.
Add jv string utility functions

    jv_string_empty()
        -> return an empty string with given allocated length (for fast
           appends)
    jv_string_truncate_bytes
        -> truncate a string by a given number of bytes (only if the
           resulting string is valid)
    jv_string_append_codepoint
        -> append a single codepoint (int) to the given string
    jv_string_explode
        -> return an array of codepoints making up a string
    jv_string_implode
        -> return the UTF-8 encoding of an array of codepoint numbers
Use uint32_t for codepoint in  jv_string_append_codepoint()
Add explode/implode jq functions to match jv API
Add startswith/endswith
Add string multiplication by number
Test starts/endswith and string multiplication
Add string division by string (split on separator)
Add tests for string division/splitting
Add string slicing
Test string slicing
Add slice builtin
Test slice builtin
Document string functions and slicing
Document string multiplication and division
Document split function
Add tojson and fromjson builtins
Test tojson and fromjson