It is possible that someone will have a file that adds individuals to an
existing population. This is fine, although it is important to note that
if no individual names are provided, (i.e. empty string or just
whitespace) that these individuals will be given unique names within the
population and added to the population.  So, if someone adds the same
anonymous individual twice, that will go into the population twice, with
two different unique names.  If this is the wrong way to deal with this,
please let me know and I will fix it.  Rah!

--------------------------------------------------------
In regionDS.cpp, addPopulation.
        Here is how it works.  If we try adding a population to a region,
first, its individuals must have the same seqeunce lengths as the other
populations.  As always, 0 is an okay sequence length with any other
length. All population are guaranteed to have unique names.  If a user
provides a newPopulation that already exists, the two populations are
merged.  So, if the user provides a population named "Seattle" and in this
region, there already exists a population named "Seattle", any individuals
that exist in the new population that do not exist in the current
datastore are added to the datastore.

An example.
There exists a region that contains the following data.

<region name="TheSupervillainGene">
        <population name="Cleveland">
        </population>
        <population name="Portland">
                <individual name="Lex Luthor">
                        <sample>
                                <datablock type="DNA">
                                        aggcttcagg
                                </datablock>
                        </sample>
                </individual>
        </population>
        <population name="Seattle">
                <individual name="Bizarro">
                        <sample>
                                <datablock type="DNA">
                                        aggcttcagg
                                </datablock>
                        </sample>
                </individual>
        </population>
</region>

Our user adds a population containing the following data.
<population name="Cleveland">
        <individual name="Dr. Evil">
                <sample>
                        <datablock type="DNA">
                                agccttaagg
                        </datablock>
                </sample>
        </individual>
</population>


The resulting RegionDS will look like this

<region name="TheSupervillainGene">
        <population name="Cleveland">
                <individual name="Dr. Evil">
                        <sample>
                                <datablock type="DNA">
                                        agccttaagg
                                </datablock>
                        </sample>
                </individual>
        </population>
        <population name="Portland">
                <individual name="Lex Luthor">
                        <sample>
                                <datablock type="DNA">
                                        aggcttcagg
                                </datablock>
                        </sample>
                </individual>
        </population>
        <population name="Seattle">
                <individual name="Bizarro">
                        <sample>
                                <datablock type="DNA">
                                        aggcttcagg
                                </datablock>
                        </sample>
                </individual>
        </population>
</region>

Note that the cleveland population has not been duplicated, but added to. 

If a user provides a population with no name to a region, a unique name
within the region will be assigned to the population.  This name will look
like this: 'Population XXXX' where 'X' is an uppercase letter. This name
is guaranteed to be unique within the region.

-----------------------------------------------------------------------------

There was a potential bug in the adding of new populations relating to
sequence lengths. Here is how it's been handled.

If we start with a population with zero individuals (m_sequenceLength ==
0) and then add a new population with a sequence length > 0.  This is a
valid situation.  Now, we can access this first population and add an
individual with a DIFFERENT sequence length, breaking our constraint that,
within a population, all sequence lengths must be either 0, or identical.

I'm handling this by, whenever we add a new population with a
sequenceLength > 0 to a region, we set the m_sequenceLength of every
population with a zero length sequence to that new sequenceLength. This
doesn't really make sense as a stand alone thing for a population, but it
does if you look at populations as being a part of a region.

This means that we may have an empty population, but with a
m_sequenceLength > 0.  This feels hackish.  If anyone has any Ideas of how
to better do this, please let me know.

This is the reason getFirstPopulation() and getLastPopulation() provide
const iterators.  So someone can't go changing the sequence lengths on the
sly.

---------------------------------------------------------

No two regions will have the same name.  If no name is given, give it a
number. Every region in a single 'LamarcDS' must have the same
populations.  Even if those populations are empty.

---------------------- PopulationDS --------------------

Population, if no name is provided, a random, unique name of four
uppercase letters will be provided for it.
