Remove gc scanning suport for Extension subclasses
Summary:
Use other ways to get scanned, mostly ThreadLocal<T>. Only
a few subclasses actually overrode vscan() anyway:
- ext_filter already used ThreadLocal<T> so it was being
scanned both ways. (fixed).
- json_parser used ThreadLocal<T> but needed a custom scanner.
(wrote it).
- ext_session manually used __thread; converted it to
ThreadLocalNoCheck<T>
This eliminates the final use of IMarker, so remove it.
The scaner may use virtual-calls to scan certian kinds of
objects, but those scanner functions no longer call back
anywhere; they just add pointers to type_scan::Scanner's
internal pointer-buffers using inlineable operations.
Differential Revision:
D3830436
fbshipit-source-id:
fa3fc5ccb54d4917a166898fafbe9c495a03bbdf