Combine duplicates of sort_array_coordinates.

This unfortunately causes a bit of extra allocation for unused
parameters. Hopefully I can find a workaraound for that.
Replace Numerical Routines sorting code.

Numerical Routines source code is not re-distributable in any way at all
and is 100% incompatible with the GPL.

The replacement code originates from the heap_sort.f90 in the global
code. It appears to be a fairly straight-forward translation of the heap
sort algorithm (e.g., from RosettaCode) and should be unencumbered. I
have added additional parameters in order to sort multiple arrays at the
same time. Interestingly, this code is slightly faster than the
previous version.
Remove unused constants.
build: Remove unnecessary cleanup.

Everything in obj/ should be in one of the variables defined in the
subdirectories. Especially when doing make clean in a subdirectory, the
entire point is to not delete all objects. The new modules were not
correctly listed in the rules, which is probably why this was added.
Remove get_value_* subroutines.

All they do is copy the default value to the result. This also removes
several copies of OUTPUT_FILES_PATH named as OUTPUT_FILES, so we save a
small bit of memory. There were even two copies of these routines.
Remove another unused constants file.
Remove more dead code.

These are all commented out or unused, especially variables for which there
isn't even any commented code to use them.
Normalize case of Fortran keywords.
Fix inconsistent indenting.

I hope I found everything... It seems like there was a lot of copy and
paste in the compute_* files, resulting in pretty inconsistent indents.
Fix up Par_file reading.

Remove the common blocks for the parameter file parsing. I think having
the subroutine return an error as an argument seems more Fortran-y.
Also, the calls to err_occurred in meshfem and specfem are useless as
read_value_parameters would have called stop already.

This is essentially a port of the same change from the global code.
Fix up mesher Par_file reading slightly.

This is similar to the change in the shared code. Really, we should just
replace this parser with the one in the shared code, which is more
robust. But there are the two Materials and Regions sections that are
non-standard to worry about.
Add -ggdb to recommended gfortran debug flags.

Without this flag, most backtraces are useless since there's no line
number or even function name.
Remove unnecessary allocated array.

These values are only used within the loop, so there's no need for an
array here.