Using const cast to get rid of having two versions of save (changed vector and array so far)
Initial implementation of seeking to allow saving and restoring position within a binary archive
Also, forward_list has no .size() method. For now, we're using a linear
traversal of the container with std::distance. We may want to do
something more efficient later?