Extract ASTDumper to a header file
This class has member APIs which are useful to clients. Make it
possible to use those APIs without adding them to dump() member
functions. Doing so does not scale. The optional arguments to dump()
should be designed to be useful in a debugging context.
Differential Revision: https://reviews.llvm.org/D61835