Unifying printing logic in ASTDumper

Well, we do want to keep the no-argument dump() methods, because they're convenient for debugging. Other than that that seems reasonable.