Initial support for GCC 4.7

These changes are due to the increasingly C++11-compliant STL implementation.
Make abc::{i,{,s,d}m}str_ copy constructors and assignment ops more clear

Remove overloads taking str_base_ arguments, replacing them with *str_
overloads instead.

Make the resulting overloads (new and not) invoke _raw_str methods
directly (bypassing the class hierarchy), to make code behavior more
explicit.

Enforce no-throw guarantee for all same-type move-constructors and
assignment operators (i.e. the code they execute will in no circumstances
explicitly throw an exception; in other cases, such as memory violation
errors, exceptions are still possible).
Other move-constructor and assignment operator overloads are allowed to
throw exceptions, since they won’t be used in containers..

Also add code comments to some methods.
Use this-qualified lookup for base class references

Declarations in dependent base classes are not found by unqualified lookup
in GCC 4.7; qualify them with "this->".
Add missing #include
Rename abc::str_base_::get_raw() to raw()

More consistent with other methods.
Update abc::{i,{,d,s}m}str_ class hierarchy diagragm

Somehow when I renamed these classes in the sources, I forgot to also
rename them in this diagram; this is what I missed.
Rename *::remove_all() to clear() (follow Python and STL naming)
Refactor abc::*vector class hierarchy to match abc::*str_ semantics

Refactor and rename abc::*vector classes to gain the same explicit
semantics advantage enjoyed by abc::*str_.

For now, the class hierarchy does not include abc::ivector because there’s
no need for it at the moment, but the hierarchy is split in immutable/
mutable just like abc::*str_, so abc::ivector can be added if necessary.

This gives consistency to the move constructors/assignment operators of
abc::*vector, which now are always non-throwing when moving from one type
to the same type (again, like abc::*str_).

Changes ripple all the way into abc::_raw_*_vextr_impl, since now both
implementation classes offer a assign_move_dynamic_or_copy() method,
previously only used for strings.

Also add code documentation for a number of methods.
Use this-qualified lookup for base class references

More of commit 7f962f76d01d1187ed218c3ba3d203593a825e74, except this code
is apparently not covered by tests, so the compiler hasn’t complained
about it yet.
Use C++11 type traits when compiling with GCC 4.7

Older versions of GCC (as well as MSC16) use non-standard type traits,
which seem to be not supported anymore.
Documentation changes for abc::*vector class hierarchy

Document changes from commit e8c49c5c16f1e645d8f5fa8f5bae071d8cf230f6.