Each Zcash epoch (between two network upgrades) has a separate history tree, making it easy to switch the node data format at network upgrades. This commit enables the general tree logic to be shared across history tree versions.
The changelogs are accurate for the 0.4.0 release tag, but don't yet include changes before or after that tag.