Stack: consolidate handling of PetscStack

This is in preparation for addition of PetscStackCallBLAS(), for which I
would like to avoid further duplication (it has already led to
petscstackp->petscroutine becoming stale in case of PetscStackPush).

This change has only one functional change: PetscStackPush will now
report the file and line number of the call site instead of "unknown"
and 0.  This is more useful because it distinguishes multiple calls from
the same function.
PetscStackCallBLAS: new macro instead of PetscStackCall (skip CHKMEMQ)

When CHKMEMQ occurs on every call to BLAS or Lapack, we sometimes see
unacceptable performance degradation (orders of magnitude).
PetscStackCallBLAS is currently identical to PetscStackCall except for
skipping CHKMEMQ, but such checking could be made optional in the
future.
Merge branch 'jed/stack-call-blas' into next

* jed/stack-call-blas:
  PetscStackCallBLAS: new macro instead of PetscStackCall (skip CHKMEMQ)
  Stack: consolidate handling of PetscStack