Use parallel terminology more consistently

In user-facing docs, log and debug output, we should be consistent.
(Later, in master, we can fix the code and comments). Definitions:

* core: hardware that actually executes instructions
* socket: a group of cores sharing (e.g.) L3 cache
* node: a group of sockets not needing a network connection
  to run in parallel
* thread: vague - an instruction stream (but should not be used
  if one of the foregoing is more appropriate)
* rank: an MPI rank (of either flavour), thus containing at least
  one thread
* process: in mdrun, regarding parallelism, only used when
  needing to distinguish real MPI from tMPI
(These, or similar, will end up in some user docs shortly.)

The goal is to express ourselves in the most relevant abstraction, not
all of them. For example, we should talk about the number of OpenMP
threads per MPI rank without observing that there are two kinds of
implementations of MPI, unless we need to draw a relevant distinction
between those two kinds of implementations.

Where debug output seems more like dumping a data structure than
describing logical state, I've left the names in strings referring to
the members of the data structure (e.g. cr->nodeid, which refers to
the MPI rank).

Changed variable name in gmx_check_thread_affinity_set() from ncpus to
nthreads_hw_avail to make clear that the associated change to the
debug string is correct.

Doubtless there are still uses of "process" that should refer to
"rank," but we use "process" to mean very many different things, so it
is hard to use sed-like tools effectively. Ideally, clang libTooling
would make it easy to find only uses that are present in strings, but
I don't have time to learn how to do that now.

Change-Id: I4dc39dff8be81a30ce803d7833dc305d29d8d188