Web.JSON: encode({val}) behavior is changed

Web.JSON.encode({val}) function supports JSON special tokens (true/false/null).
If these tokens are specified, the function returns 'true', 'false', or
'null' (not '"true"', '"false"', or '"null"').
You can access to the corresponding tokens as Web.JSON.true,
Web.JSON.false, and Web.JSON.null respectively.

    let s:JSON = s:V.import('Web.JSON')
    " the following echo '[true, false, null]'
    echo s:JSON.encode([
            \ s:JSON.true,
            \ s:JSON.false,
            \ s:JSON.null,
            \])

Notice that for backward compatibility, these special tokens are converted to
1, 0, and 0 respectively in `Web.JSON.decode(val)` function like

    " the following echo '[1, 0, 0]'
    echo s:JSON.decode(s:JSON.encode([
            \ s:JSON.true,
            \ s:JSON.false,
            \ s:JSON.null,
            \]))
Web.JSON: decode({val} [, {settings}]) behavior is changed

If 'use_token' is specified in a option of decode function, the function
will translate javascript codes into corresponding special tokens

    let T = s:JSON.decode('true')                    " equal to 1
    let F = s:JSON.decode('false')                   " equal to 0
    let N = s:JSON.decode('null')                    " equal to 0

    let T = s:JSON.decode('true', {'use_token': 1})  " equal to s:JSON.true
    let F = s:JSON.decode('false', {'use_token': 1}) " equal to s:JSON.false
    let N = s:JSON.decode('null', {'use_token': 1})  " equal to s:JSON.null
Web.JSON: Add documents and update Changes