Web.JSON: Add {nocompatible} argument to decode()

{nocompatible} optional argument is added to Web.JSON.decode function.
JavaScript tokens ('true', 'false', and 'null') are decoded into the
corresponding special tokens (e.g. Vital.Web.JSON.true) if {nocompatible} is 1.
Otherwise tokes are decoded into 1, 0, and 0 respectively.

For backward compatibility, the default value of {nocompatible} is 0.

    " backward compatible behavior
    let s:json = s:JSON.decode('[true,false,null]')
    echo s:json[0] == 1
    echo s:json[1] == 0
    echo s:json[2] == 0

    " {nocompatible} is 0
    let s:json = s:JSON.decode('[true,false,null]', 0)
    echo s:json[0] == 1
    echo s:json[1] == 0
    echo s:json[2] == 0

    " {nocompatible} is 1
    let s:json = s:JSON.decode('[true,false,null]', 1)
    echo s:json[0] == s:JSON.true
    echo s:json[1] == s:JSON.false
    echo s:json[2] == s:JSON.null
Web.JSON: Update Changes.