Fix warning spam generated by src/generic/partitioning.cc

Many METIS partitioning functions were declared in one place and then
declared again when they were defined (as though they were part of a
class).

This gives warnings for redundant function declarations.

Removed the unnecessary extra declarations.
Add file open PARANOID checks in creation of triangle meshes from files
Use -isystem instead of -I for external distributions (hides warnings)

This has one side effect: the external distributions are moved to the end
of the list of libraries. I very much doubt that this could break anything
but it's something to keep in mind.
A bunch of small changes

* Initialise Nnewton_iter_taken

* Make get_some_non_boundary_node const

* Add broken virtual nvertex_node() function to FiniteElement

* Rename nprev_values_for_value_at_evaluation_time (new function added by me)
  to nprev_values_for_value_at_evaluation_time, more consistent.

* Move some variable declarations into/out of #ifdefs to get rid of warnings:
** f_ml_settings in demo_drivers/womersley/one_d_womersley/one_d_womersley.cc
** nproc in src/generic/block_preconditioner.h