GCC 4.5 compatibility: include compatibility header where needed.
GCC 4.5 compatibility: added missing includes.
GCC 4.5 compatibility: workarounds for initializer list errors.
GCC 4.5 compatibility: can't use const_iterator in erase().
GCC 4.5 compatibility: no range-based for.
GCC 4.5 compatibility: cannot default some functions in class body.

Seems that GCC 4.5 implemented older revision of the specification,
which doesn't allow defaulting explicit and/or private members in class
body.
GCC 4.4 compatibility: std::map::erase() returns void.
GCC 4.4 compatibility: no string literals.
Merge branch 'master' into compatibility