I would reiterate what Ben said.
In addition to Twenty Seventeen, check out the code of the Lodestar and Pique themes (both by Automattic). I used those to build my own Belmont theme in a similar way.
It’s not perfect, but as far as I know, it’s the most “WordPress friendly” way to ensure content portability because the content is comprised of actual WordPress pages, not Customizer settings or widgets, both of which are not under revision control and can be more easily lost on theme switches.
It is also WordPress.org compliant (not sure if that’s a priority for you) and doesn’t require additional plugins.
I am a fan of ACF Pro, although I would be wary of including it in a theme because the creator asks it not be included like that. I also wouldn’t be comfortable asking customers purchase an additional plugin just to do something the theme should probably do on its own.
I haven’t used CMB2 enough to know if it’s possible, but if there was something similar to ACF Pro’s “Flexible Content Field” I would consider that. However, if this code is stored in the theme, you may have content portability issues. If it’s stored in a separate plugin, you have UX issues because it might be odd to install a plugin that has little use outside of the theme.
I don’t think it can hurt to include a “full width” template designed for page builder plugins to use. I just wouldn’t bundle page-building functionality in the theme itself. Maybe the user has a preferred page builder they like to use.
This approach by @natewr is worth taking a look at.