Error handling improvements

o BoutInitialise calls BoutComm:cleanup() on failure, which in turn should
  call MPI_Finalize()

o In the default main() defined in boutmain.hxx, BoutFinalise() is called
  if the physics initialisation fails
BoutMesh finds correct NXPE with branch cuts

previous code to automatically find NXPE didn't take into
account branch-cuts. Now updated to work for single or double null.