Refactor Hagmann density method to improve readability and performance.

Removed unnecessary method for summing inverse fiber lengths. This hurt
both the readability of the code and performance.
Change method of correcting for possible zero surface area.

Previously we treated any zero as a very small value. This is fine as
long as the there is at least one region reporting a non-zero surface
area, but if both regions report zero surface area this will
artificially inflate the density value.