Significant features for integration with forwards-time simulators plus
improvements and bugfixes.
**Breaking changes**:
- Change in the semantics of how populations are treated by simplify. By
default, populations that are not referenced will now be removed from the
data model. This can be avoided by setting `filter_populations=False`.
- Simplify now raises an error if called on a set of tables that contain
one or more migrations.
**New features**:
- The simulate() function now supports a `from_ts` argument allowing
msprime to complete the ancestry in tree sequences generated by
forward simulations (503, 541, 572, 581).
- Add start_time and end_time parameters to the `mutate` function (508).
- Add `reduce_to_site_topology` argument to simplify. This allows us to
find the minimal tree sequence that would be visible from a given set
of sites, and is also a useful compression method if we are only interested
in the observed sequences. (545, 307).
- Simplify generalised to support individuals, and the `filter_populations`,
`filter_individuals` and `filter_sites` parameters added to allow
filtering of unreferenced objects from the data model. (567).
- Default random seeds are now generated from a sequence initialised by
a system source of randomness (534). Random seeds should also be safely generated
across multiple processes.
- Full text I/0 support for Individuals and Populations (498, 555)
- Substantially improved performance in `msprime.load` for large tables
and significant refactoring of C code (559, 567, 569).
- Improved performance of generating genotypes (580).
- Formal schema for tree sequence provenance (566, 583).
- Many updates to documentation.
**Bug fixes**:
- Throw a more intelligible error during simulation if a topology is produced
where the time of a parent is equal to the time of the child. (570, 87).
- Pickle supported in the TableCollection object. (574, 577).
**Deprecated**:
- The `filter_zero_mutation_sites` parameter for simplify has been deprecated
in favour of `filter_sites`.