Distinguish between types of resolve failure for `Index` nodes
Distinguish between types of resolve failure for `Index` nodes

Currently if an `Index` node (e.g., `foo.bar`) fails to resolve,
regardless of the failure mode, we will report `Unresolved`.

This is unhelpful when we're trying to offer autocomplete sections.
Hence, this commit will introduce a few different types of failure we
can report when we try to resolve the symbol:

1. `UnresolvedIndexId`, which represents the case that the ID (e.g.,
    `baz` in `foo.bar.baz`) fails to resolve.
2. `UnresolvedIndexTarget`, which represents the case that any target in
    the expression fails to resolve (e.g., `foo` or `bar` in
    `foo.bar.baz`).

These types are useful because the first case is completable, while the
second is not. For example, if the user types something like `foo.bar.b`
and `bar` has two members, `baz` and `bat`, then we kno that we can
offer both as a completion suggestion.

In contrast, if either `foo` or `bar` fail to resolve to a value, then
we have not autocomplete suggestions to offer.

Signed-off-by: Alex Clemmer <2e6147cbff6661bd424c256de746b4f230002dff@gmail.com>

heptio/vscode-jsonnet,heptio/vscode-jsonnet