Composite

Pulling from my branch will add code for my solution to the Composite assignment, updated to deal with statement separators and the fact that begin ... end blocks can contain zero or more Statements.