Get["Utilities`CleanSlate`"]
SetOptions[CleanSlate,Verbose->False];

(* removed the following as they gave errors: "BarCharts", "Combinatorica", "Compatibility", "ComputationalGeometry","Geodesy","GUIKit", "Histograms", "HypothesisTesting", "LinearRegression", "NonlinearRegression", "PieCharts","Units","VectorAnalysis","VectorFieldPlots","Benchmarking","Developer","Experimental",*)
addOnPackages={"ANOVA","Audio",  "BlackBodyRadiation", "Calendar",   "ComputerArithmetic",  "EquationTrekker", "ErrorBarPlots",  "FiniteFields", "FourierSeries", "FunctionApproximations",  "GraphUtilities",  "HierarchicalClustering","MultivariateStatistics", "Music",  "Notation", "NumericalCalculus", "NumericalDifferentialEquationAnalysis", "PhysicalConstants", "PlotLegends", "PolyhedronOperations", "Polytopes", "PrimalityProving", "Quaternions", "RegressionCommon", "ResonanceAbsorptionLines", "Splines", "StandardAtmosphere", "StatisticalPlots",  "VariationalMethods",   "WorldPlot", "XML"};
addOnPackages=Sort[addOnPackages];

Get["Utilities`CleanSlate`"]
SetOptions[CleanSlate,Verbose->False];
addOnPackages={"ANOVA","System"};

(*
output=OpenWrite["info.txt",FormatType->OutputForm,PageWidth->Infinity];
$Output=output;
$Urgent=output;
*)
getList[name_String]:=Module[{options,idx},
options=Names[name<>"`*"];
options=ToExpression/@options;
options={#,Options[#]}&/@options;
idx=Range[Length[options]];
options={#[[1]],TableForm[#[[2]]]}&/@options;
options=Insert[options[[#]],#,1]&/@idx;
options=Insert[options,{"#","Option","Options to this option"},1];
Grid[options,Frame->All,Alignment->Left,FrameStyle->Directive[Thickness[.005],Gray]]
];

Do[{
packageName=addOnPackages[[i]];
Print["<",packageName];
Get[packageName<>"`"];
namesInPackage=Names[packageName<>"`*"];
Information[#,LongForm->False]&/@namesInPackage;
Print[#,"\n",getList[#]]&/@namesInPackage;
CleanSlate[Evaluate[packageName<>"`"]]
},{i,1,Length[addOnPackages]}
];
(*
Close[output];
*)