Add ReplaceSeries and refactor the CreateSeries function into smaller steps

2-member pool means branch 0 (change addresses which become BA) and branch 2 (BA) produce the same addresses. It's possible we want to support this later, but it's not going to work now.