add read only optimization by consolidating reads after the first write occurs
implement first draft at a more general interface for versioned values
andddd make an actual way to change the box type. this is not at all tested with versioned_str, which is the one class where most of this code might actually get hit...