Support merging a release branch back to develop but maintain the version

This is still WIP

We have a situation where stabilizing majors we want to merge a release branch down to develop but then keep working on it. When this is done the versioning resets back to x.y.z-beta.0+1 and ignores any prerelease tags.

I remember talking with @nulltoken about this and we said it wasn't a valid use case. 

@nulltoken can you take a look at this and see if its even possible to support this? (see the failing test)

cc @SimonCropp @johnsimons @JakeGinnivan