C++11: segfault in debug mode for arrays
Currently C++ generator when uses smart pointers generates incorrect code that uses `unique_ptr` after it was moved into the vector:
```cpp
void debug_array_user_t::_read() {
    m_one_cat = std::unique_ptr<cat_t>(new cat_t(m__io, this, m__root));
    m_one_cat->_read();
    m_array_of_cats = std::unique_ptr<std::vector<std::unique_ptr<cat_t>>>(new std::vector<std::unique_ptr<cat_t>>());
    const int l_array_of_cats = 3;
    for (int i = 0; i < l_array_of_cats; i++) {
        std::unique_ptr<cat_t> _t_array_of_cats = std::unique_ptr<cat_t>(new cat_t(m__io, this, m__root));
        m_array_of_cats->push_back(std::move(_t_array_of_cats));
        _t_array_of_cats->_read(); // <<<<<<< BIG PROBLEM ^^^ object is moved out
    }
}
```
That is the reason why `DebugArrayUser` test on https://ci.kaitai.io/ is segfaulted on C++11 with message `memory access violation at address: 0x8: no mapping at fault address`.

This is the common problem: in debug mode reading is performed _after_ placing new object into container, but in no debug mode it is readed in constructor, i. e. _before_ placing into container. That is very unpleasant situation, because debug mode ideally should not change behavior.