add support for using jsonpointer ony any struct/slice

this implementation uses reflection to interrogate/traverse objects
jsonpointer field names can refer to exaxt (exported) field names
or they can also refer to JSON field names specified in struct tags

For example, consider the struct:

type Person struct {
    Name string `json:"name"`
}

You can access the Name field using either "/Name" or "/name".
Consolidate docs into doc.go
lint-inspired doc cleanups