Added a JSON tokenizer, and abstacted TokenStream to IStream<IToken>