merge typo fix from m3dc1 branch
fix dead assignment found by clang
silence clang analyzer warning

Clang points out that in the case of
0-dimensional meshes, this assignment
would be garbage.
It will probably be silenced if I
zero the initial set contents.

Although I could add an assert to inform
clang that 0D meshes can't happen,
the truth is weird stuff happens at SCOREC
and I shouldn't preclude the need to
temporarily write a 0D mesh to file.
silence another clang analyzer warning

Clang points out that terrible things
will happen if we increase dimension
4 times. I completely agree.
Adding asserts to prevent users and clang
from going into the 4th dimension.
another silenced clang warning

clang points out that if users don't give
a good enum value when making fields, a
null pointer gets dereferenced.
True, so added a "nicer" fail mechanism
and an attribute just in case.
more clang silence

Clang points out that bad stuff happens
if we try to remove a node from an empty
tree. no kidding. added assert to check
that trees aren't empty when being removed
from.
adding extra check pointed by clang

clang now points out that I will compute
garbage if checking an empty set.
since check_set is only used in a case
where the set must not be empty, just
assert that the set is not empty.
This is a verification function, so in this
case clang is right, that check is needed.
silence another clang warning

clang points out that according to some
stuffy standard, calling realloc(p, 0)
is implementation-defined behavior.
Well, Linux clearly defines this as equivalent
to free(p). In the unlikely case that we
run this on a platform that does something
different, mds_realloc will now ensure the same
behavior.
got the code to pass clang static analysis

Some of the changes here are reiterations
of ones that were thought to have been
fixed by the previous few commits.
Overall, no actual bugs were found, it
was mainly a matter of clarifying our
intentions with asserts and checks.

The hack in parma_partinfo is unfortunate,
and only exists because people will pay
more attention to static analysis warnings
if the natural state is completely clean.