First draft of CompositeQoI.

Have not tried to compile this yet.
More work on CompositeQoI to interface with libMesh::DifferentiableQoI
Starting to rework QoIBase class to play nice with CompositeQoI.

Note that compilation will break starting here.
Updating existing QoIs to conform to new QoIBase API.

Probably not done yet and compiling still going to be borked.
Update Simulation and QoIFactory to use CompositeQoI

Compilation still probably broken, but should be getting close.
Starting trying to compile CompositeQoI
Missing forward declaration.
Correct header.
New API is expecting a qoi index.
Constructor now takes the qoi name. All other stuff moved to init.
Rename get_qoi to get_qoi_value as it's more descriptive.

And we'll need a get_qoi method that will return a const reference
to the QoI object.
Fixes for get_qoi method.
Updated echo_qoi to use CompositeQoI`
Fixes for vorticity QoI
const correctness
Got rid of the read_input_options function.
Have SimulationBuilder return a CompositeQoI shared_ptr
Actually create the CompositeQoI in the QoIFactory
Need correct headers.
Implement clone method for CompositeQoI