Adhere to item 2 of effective C++ and use const rather than #define.
Fix a bug relating to how isotopes were marked as experimental, or not.

This is an overly big commit, a few things have been fixed:

* A '#' anywhere in the line was causing the isotope to be marked
as theoretical, e.g. a theoretical half-life in nubase would stop the
AME_ME value for that same isotope being set even if they were both
measured. Isotopes are now only flagged as theoretical if their
mass excess in unknown.

* If an isotope was theoretical in nubase but experimental in AME,
it's mass excess would not get recored in AME_ME or AME_dME. Thus,
both values would be recorded as 0 so dm/m = 0, making it look very
accurately known. The variable 'exp' needs to be set from the AME
table, if used. As a quick fix I will initialise AME_ME=0.1 and
AME_dME=1e4 so dm/m=1e5.

* Variables are bools so initialise with true/false rather than 1/0.

* Lessen scope of a variable and create a new variable to test values
against rather than having a 'magic number'.
I prefer the ternary operator for these kind of conditions.
The comparisons done on the member exp means it should be an int not a bool.
If using AME, allow that to set the experimental flag.

After 077eaf8, the mass excess sets the experimental flag. The AME
only has ground states and is newer so allow that to take precedence
over the nubase (in the cases that the AME is actually used).
Add bug about reading the option file.
Merge branch 'TheoryCheck'

The setting of the flag/member 'exp' to mark if an isotope was actually
experimentally measured on not was not quite correct. It now is.