Directional guardcell update

This patch provides options to guardcell exchange routines that:
* allow skipping update of corner guardcells
* allow guardcell update in only one direction