Use smart pointer memory management for ActionWarehouse Mesh objects

The `_mesh` and `_displaced_mesh` objects owned by the `ActionWarehouse` were neither created nor destroyed by the `ActionWarehouse`.  This led to a situation where those objects were deleted in more than one place.  Using the memory management capabilities of MooseSharedPointer makes this unnecessary.  Note that we are not using the reference-counting capabilities of MooseSharedPointer since, as far as I could tell, it was not necessary.  So these are actually closer to `unique_ptr`s in spirit, but robust support for those in MOOSE isn't quite ready yet...

I've also run this through valgrind and it's clean.  The branch also adds some suppressions for OpenMPI that I came across, so we can run the valgrind target on OpenMPI-based stacks now too if desired...

Refs #3446, #3547.