Clean-up in the container handling

Completely suppressing the mutable fields is not possible without having to do some convoluted changes. So I've removed any external facing function modifying the state, and I've added some hard error if the state are manipulated wrongly by the different internal combinators.

It's related to #54