Fixes #9338

[SVN r86748]
Changes during Git migration:

- Added Extended Allocator support for Boost.Container.
- Improved Doxygen generated reference
- Fixed ticket #9338 ("VS2005 compiler errors in swap() definition after including container/memory_util.hpp")
- Modified relational operators to be friend inline definitions. This allows compilation checking when instantiating classes, avoids predeclarations and results in less verbose code.

- First to make associative containers' tree implementation configurable.
Refactored tree cloners into a single standalone class to avoid unnecessary instantiations and simplify maintenance.
Extracted key_node_compare from tree to tidy a bit the implementation and ease maintenance.
Added a static assert to make sure that flat_[xxx]map::allocator_type::value_type  is std::pair<Key, T>. Fixed some test cases failing to do that properly.
Some comments in the testcases separating test groups.
Use "insert_after" instead of "insert" to avoid unneeded checks.
Document comparison operators for non tree associative containers.
Added support for configurable tree-based associative containers. In addition to RB trees, AVL, Scapegoat and Splay trees are experimentally supported.
Derived flat_set from flat_tree to avoid redefining almost all functions and minimize instantiation of multiple function in debug mode.
Documented template parameters
Documented template parameters.
Inherit flat_set/flat_multiset from flat_tree to avoid code instantiation in debug mode and several trivial functions. Declarations still there for doxygen documentation.
Inherit set/multiset/map/multimap from tree to avoid redundant instantiations in debug mode and simplify maintenance.
Fix GCC warning about unused typedef in release mode.
Improved set test with search functions and added set<string> test to benchmark.
Improved unique associative container count function. Improved also flat_xxx's equal_range.
Implemented unique associative containers' equal_range using lower_bound_range which is more efficient with heavy comparison functions.

Updated benchmark to avoid measuring redundant operations in searches.
Divided set benchmark in several smaller benchmark files