Converting "Problem" to a shared_ptr

refs #4009, #3698 

Note that I had to add a problem.reset() in the ActionWarehouse destructor to avoid problems with late cleanup due to OutputWarehouse.  Hopefully we can eventually resolve these destruction order issues.

The cleanup of the destructors in the Executioners is very nice.