Add true/false/null tokens support to Web.JSON module.

#### Summary
Now Web.JSON support `true`, `false`, and `null` tokens in its `encode` function. You can use these tokens as

```vim
let s:JSON = s:V.import('Web.JSON')
echo s:JSON.encode([
    \ s:JSON.token('true'),
    \ s:JSON.token('false'),
    \ s:JSON.token('null'),
    \])
" it will display '[true, false, null]'
```

---

#170 で問題視した部分の修正案です。`s:JSON.token('true')`のようにすることでJSON上で`true`を表すトークンを取得できます。これを`s:JSON.encode(val)`で用いると、JSON上で`true`と表現されます。

なお`s:JSON.decode(val)`に関しては後方互換性のためにいじっていないため`[true, false, null]`というJSONが`s:JSON.decode(val)`に渡されると`[1, 0, 0]`というVimオブジェクトに変換されます。個人的にはリバーシブルではない実装は気持ちが悪いので後方互換性を捨てたいですが……

Vitalのコードを読むのも書くのも初めてなので、問題等あればご指摘ください。

あと基本的なストラテジーは [webapi-vim](https://github.com/mattn/webapi-vim/blob/master/autoload/webapi/json.vim#L116) のパクリです。Public domainということで問題は無いと思いますが、嫌だなとかあればご指摘ください（@mattn さん）
`s:`な関数を正しく返しているか判断する方法がわからなかったので、関数を呼び出して返り値で判断させようと考え（）をつけたのですが、これ`string()`で囲って`function(s:_true)`か見た方がいいですかね