Fix previous commit 1d327fd1dcd34023a3d5bb2c0ee7524593d44015.

Commit 1d327fd1dcd34023a3d5bb2c0ee7524593d44015 moved a function from the .cc
file into the .h file and made it inline. Subtly, it also snuck in a small
change in the code: it changed
  if (!something)
   {
     ...
   }

  if (something)
into
  if (!something)
    {
      ...
    }
  else

The problem is that the first code block in rare circumstances changed the
value of the variable something. It is remarkable that this only triggered
in a single test in the testsuite -- an indication that the testsuite is
after all reasonably good at finding even obscure problems, but also an
indication that the anisotropic refinement stuff is not particularly well
tested.
Merge pull request #357 from bangerth/fix-1d327fd1

Fix previous commit 1d327fd1dcd34023a3d5bb2c0ee7524593d44015.
Fix bug in Trilinos SparseMatrix::add/copy_from

We assume that the pointers to a Trilinos sparse matrix remain valid when a matrix
is copied from another one or added and the two matrices share the same sparsity pattern.
This is used in step-32. However, the fix introduced in 8d64256 could not ensure this
(while fixing a few other cases). The check if the two sparsity patterns point to the same
memory is not good (we can have the same sparsity pattern memory but different addresses).

Therefore, the add and copy_from methods need to be more careful to not set up a new
matrix structure when this is not necessary. In particular, the two methods now check
whether the column indices are the same in any case but without requiring calling
methods that change the memory layout.
Merge pull request #359 from kronbichler/master

Fix bug in Trilinos SparseMatrix::add/copy_from