Process, System.File: old system() needs iconv()

* Add encoding: Old system() assumes argument's command is encoded by system
  encoding (does not encode its own).
* Add decoding: Old system() returns raw string encoded by system encoding.

This behavior was changed in 7.4.122:
  https://groups.google.com/forum/#!searchin/vim_dev/7.4.122/vim_dev/KXzoTZz3-MY/HiyvvjPWsssJ

cf.
* Issue #126
* Commit 8a98fc562370c5e9de2b6b44cb786ad12c206336
* Patch 7.4.122
  https://groups.google.com/forum/#!searchin/vim_dev/7.4.122/vim_dev/KXzoTZz3-MY/HiyvvjPWsssJ

Thanks @k-takata to point out this problem.
System.File: copy_exe(): add /y option to copy command
System.File: copy_exe(): support env &shell is not cmd.exe (#126)
Merge branch 'old-system-needs-iconv' (close #169)

Conflicts:
	autoload/vital/__latest__/System/File.vim

And previous commit(4243d6e) message is slightly wrong.
system() returns raw string encoded by system encoding yet (Thanks @k-takata).

-Add decoding: Old system() returns raw string encoded by system encoding.
+Add decoding: system() returns raw string encoded by system encoding.
System.File,Process: define s:need_trans (#169)
System.File,Process: add conversion (#169)

The followings need conversion unconditionally.
* system()'s {input} (the 2nd argument)
* system()'s return-value
System.File,Process: fix english
Web.JSON: Add testcases of Web.JSON

The following testcases are appended.

-   Specs of Web.JSON.decode (numbers, strings, lists, dictionaries)
-   Specs of Web.JSON.encode (numbers, strings, lists, dictionaries)

Specs for both function in 'iconv' or 'encoding' cases are not present.
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
Web.JSON: Remove original lockvar

I remove lockvar code from the Web.JSON because the code cause the
following exception

    Error detected while processing function ry)..<SNR>256_get_json..<SNR>257_import..<SNR>257__import..<SNR>257__build_module:
    line   27:
    E741: Value is locked: filter() argument

true/false/null tokens should be locked but this kind of strategy will
be prepared on Vital.vim thus I just remove the code.
Merge pull request #173 from lambdalisue/support_json_tokens

Web.JSON: Add JSON special tokens (true/false/null) support in encode({object}) function.
Text.Lexer: Fix for vimlint
Vim.Search: Fix for vimlint
Data.LazyList: Fix for vimlint
Data.String: Fix for vimlint
Data.String: Fix for vimlint
Web.JSON: Fix for vimlint
Web.XML: Fix for vimlint