KSPChebyshev: use VecAXPBYPCZ instead of three separate Vec operations
PCBDDC: Constraints setup improved

 - Change of basis is now performed using QR factorization of constraints
 - Added missing support for complexes when PETSC_MISSING_GESVD is defined
 - Improved code readability
PCBDDC: Less tricky loop on constraints when changing the basis
add support for vtk rectilinear grid (.vtr) viewer
test code for vtk rectilinear grid (.vtr) viewer

- test code: ex42.c
- follow PETSc style
- include ex42.c in src/dm/examples/tests/makefile
PCBDDC: create local solvers once. Reuse them during repeated linear solves

Destroy routines moved outside ResetSolvers routine.
PCBDDC: move setup of local solvers into a routine into bddcprivate.c

PCBDDCSetUseExactDirichlet moved accordingly
PCBDDC: better management of local matrices among repeated solves
PCBDDC: Setup of local matrices moved into a separate routine into bddcprivate.c
PCBDDC: use a boolean memory instead of scalar one to compute local scatters
PCBDDC: Move setup of local scatters into a routine
PCBDDC: protect code for mirrors by graph size.

These are invalid reads in multilevel
PCBDDC: protect queries to lapack GESVD/SYEV when there are no edges or faces (1D)
PCBDDC: Remove aliased parameters from SYEV calls.

Improved readibility
PCBDDC: Remove aliased parameters from GESVD calls
PCBDDC: Remove aliased parameters from GEMM calls.

Improved readibility
PCBDDC: Remove aliased parameter from DDOT call
PCBDDC: Remove aliased parameters for QR calls

Improved readibility
PCBDDC: further improvements to BLAS/LAPACK calls readibility

min_n replaced by k to fullfill code developing guidelines
Merge branch 'stefano_zampini/pcbddc-multipleconstraintsbugfix' into stefano_zampini/pcbddc-improvelocalsolvers