Add the “answer” environment.
Improve styling of answer boxes.
Use ifthen package for working ‘answerkey’.

This seems to be just about the only solution that allows the use of comments to hide answers from inside an environment definition.
Less spacing for \section, more for \subsubsection.