Add missing .dat files and modify .gitignore to include them
Removed "current" config file since it constantly changes

Also updated .gitignore to ignore that and a few other generated files.
Remove problem pointer from preconditioners and related changes

* Updates to preconditioners class

** Changed setup function to take an OomphCommunicator* instead of Problem*

*** Allows the preconditioners to be used in parallel outside of a problem
    For example GMRES always uses a preconditioner (identity preconditioner
    if nothing else) so it segfaulted if used in parallel outside of a
    problem.

*** Gives proper segregation
    If every preconditioner has a non-const problem pointer then it can
    modify the problem in any way it likes. For most preconditioners this
    is unecessary and when it is needed it should really be explicit.

*** Since that is all the problem pointer is used to get in almost all
   cases.

*** Defaults to zero (for non-parallel cases).

*** Wrapper function to allow old code to still work.

*** Added storage, set and get functions for the OomphCommunicator* and
    removed those for the Problem*.

*** Updated preconditioner array in a similar way

* Updates to block preconditioners class

** New function any_mesh_distributed() in block preconditioner
   To replace problem_pt->distributed() since we no longer have a problem_pt
   in preconditioners and the two conditions are equivalent (according to
   Matthias).

** Do not choose a default mesh in block preconditioners if none is set
   Required a problem pointer since it just picked problem_pt->mesh_pt().

   Was probably a bad idea: silently uses all meshes instead of what is
   specified. In particualar in subsidiary preconditioners default meshes
   were sometimes used unecessarily which could have caused problems if used
   in cases with meshes that the preconditioner should not know about.

*** Some preconditioners were using the default mesh setting
    Now set it explicitly.

    These should probably be double checked by someone else...
**** "Block_sub_prec_1_pt" in biharmonic_preconditioner.cc
**** "F_block_preconditioner_pt" in navier_stokes_preconditioners

* Updates to linear solvers

** Fixed comments on solve(..) without a problem_pt
   They now reflect the real code (no changes to the code itself).

** Removed problem_pt argument from iterative linear solver solve_helper() s

*** Unecesary because it was only used to get a communicator pointer
    But the communicator pointer is already been stored in the linear solver
    itself (since it is a DistributableLinearAlgebraObject)! solve_helper()
    is private so this is not an interface change.

*** Adjusted function calls to work with these changes

*** Adjusted comments to reflect these changes

* Updated demo drivers to work with new function parameters

* Some preconditioners still require a problem pointer
  Namely the NavierStokesSchurComplementPreconditioner and anything
  containing it as a subpreconditioner. Added storage, set, get functions
  for a non-const problem pointer in this class.

  Added problem pointer as a constructor argument for these cases:
** NavierStokesSchurComplementPreconditioner
** BoussinesqPreconditioner
** FSIPreconditioner
** PseudoElasticFSIPreconditioner

* Misc
** In block preconditioner moved mesh_pt PARANOID checks into get function
   Check inside the mesh_pt(..) function instead of checking the result
   everywhere it is used.

** Removed unecessary "virtual" specifiers
   BoussinesqPreconditioner : public virtual BlockPreconditioner<CRDoubleMatrix>

** Added const specifier to Mesh::finite_element_pt
   It is always a get function because it does not return by
   reference. Hence there is no reason not to be const.

** Removed manual caching of problem pointer in solid_preconditioners with MPI
   Code was:

   #ifdef OOMPH_HAS_MPI
     // store the problem pt
     const Problem* problem_pt = this->problem_pt();
   #endif

   No idea why this would ever be needed.
Merge commit 'd1c4dd25e284c6cb9cd7a08936cee8e531b1a54a' into problem-pt

Conflicts:
	config/configure_options/current
	src/generic/general_purpose_block_preconditioners.h
Add exit statuses to validate scripts.
Clean up dummy validate scripts and add -k to make check in autogen

Some validate.sh scripts do nothing. A previous patch made doing nothing
return a non-zero exit status. Changed them to just return 0.

-k means don't stop if a build fails.
Cleaned up .gitignore, added some more binaries
Updated Ray's preconditioners, some small fixes, whitespace

* Ray's preconditioner now works with problem_pt changes.

** Commented out some unneeded code.

** Fixed some warnings.

** Changed function arguments/calls as needed.

* Other

** Made communicator pointers const in preconditioner array.

** Fixed some indentation and trailing whitespace.
Add check for number of cores in used in mpi self test command

Added to bin/minimal_mpi_test.cc

Runs in autogen.sh.

If number of cores is not 2 it will fail with a warning (because the self
tests only work with 2 cores).
Update mpi self tests for preconditioner changes