Add assign preprocessor
Split header/footer code into separate preprocessor
Pull out jinja template rendering into RenderSolutions preprocessor

This also replaces the ClearSolutions preprocessor
Use base class for tests
Move table of contents into its own preprocessor
Misc: include toc in render solutions, remove outdated stuff from assign
Pull out extract tests code into separate preprocessor
Create a solution app
Remove celltoolbar in render solutions
Remove assign app, rename to solution app
Add files writer to solution app
Add example
Fix print statements
Remove toc/extracttests/solutionapp
Rename RenderSolutions to ClearSolutions
Remove unused tests file
Update example notebooks
Update test notebook
Clear prompt numbers in example notebooks
Rename example notebooks