Removed internal global barrier in SendRecv

Instead of issuing a shmem_barrier_all, the reception of the message is
confirmed using a flag.
The macros shmem_reset_flag , shmem_set_flag and shmem_wait_flag,
currently defined in domdec_network.c for simplicity,
enables the creation of a non-global barrier to which only
the processes involved on the SendRecv operation will wait, and only if there is a reception involved.
Also, macros/functions to create/remove shared memory have been added to smalloc.
Temporary code to allow a global shared memory buffer for communication has been added
but it is currently disabled (by the means of the non-defined shmem_temporary_buffer variable)
SHMEM temporary buffers globally synchronised

The gmx_domdec_t data structure has been extended with a new gmx_domde_shmem_buf_t,
which holds a set of shmem temporary buffers (one for each gromacs type).
These buffers are initialised using the srenew pattern that is used in other parts
of GROMACs, although they use shrealloc to syncrhonise the symmetric heap across all the PEs.

The routine renew_buf has been added (currently to domdec_network) to call shrealloc if the
current temporal buffer is not big enough to store the communication.

PEs use the get_max_alloc function (also in domdec_network) to synchronise the size of the
symmetric heap using a int_max_to_all reduction (so that the local size is always set to
the maximum value across PEs)