Streaming parser functionality

This is a PR for streaming input JSON.  That means that for each leaf value (scalars and empty arrays/objects) `.` resolves to `[[<path>], <leaf>]`.  For example, `[0,[1],[],{},"a"]` looks like:

    [[0],0]
    [[1,0],1]
    [[2],[]]
    [[3],{}]
    [[4],"a"]

In order to really be useful, this will really need a `read` builtin though.