Subset of the old Clang Plugin needles

Most needles from current clang plugin minus some of the inheritance needles.
Have you considered making this a decorator?

```python
@tree_to_index
def clang_indexer(tree):
    ...
```

It would be briefer and more in line with contextlib.contextmanager().