Detail: Turn forward declarations for IBM Visual Age standard library.
Detail: Don't forward declare containers for gcc in profile mode. Refs #6029.

Also a big clear comment about `BOOST_DETAIL_NO_CONTAINER_FWD` and a
fixed typo.
Use <intrin.h> for VS2010+. Refs #4678.
Detail: Revert [67484] in container_fwd. Refs #6139
Detail: `complex` is a struct in Dinkumware.

IIRC it's `class` in SGI's STL and most other implementations. The state
for similar warnings for the compilers that I've looked at:

- Visual C++ never warns because I used a pragma to disable the warning.
- GCC never warns with its standard library since it contains a
  `system_header` pragma. It might warn for other libraries.
- Clang respects GCC's pragma so it never warns for GCC's standard
  library. Forward declarations are disabled for libc++ so this isn't an
  issue there. It does warn when using Dinkumware and possibly other
  standard libraries.

I'm tempted to make container forwarding 'opt-in' rather than 'opt-out'.
Or maybe only enable for compiler/library combinations where it's known
to work.
Detail: Fix `BOOST_CONTAINER_FWD_COMPLEX_STRUCT`. Refs #6139.

My last change was wrong, it isn't struct for Dinkumware. In GCC's
standard library it's declared as a class, but later defined as a
struct. This is so far untested as I'm building the latest trunk version
of clang (the warning doesn't show for the current clang release).
Start 1.49
Fix Clang workaround.
Fixes #6156.
Detail: Disable container forward declarations for recent versions of libstdc++, refs #6326.
Detail: Add macro to explicitly enable forward declaration of containers.
Initialize 1.50
Summary: Moved libs/detail/utf8_codecvt_facet.cpp to boost/detail/utf8_codecvt_facet.ipp
Author: Dave Abrahams <dave@boostpro.com>
Combine scoped enum emulation from thread library into detail/scoped_enum_emulation.hpp
ScopedEnum: Rollback last change as there are regressions on Spirit
ScopedEnum: Fix issue with native function class
Add warning to deprecated header `boost/functional/detail/container_fwd.hpp`.

Should have done this years ago, removing this header should make
modularization a tad bit cleaner.
Initialize 1.51
Chrono: Try to fix issue with WinError.h file
Thread: Try to fix 5431
Thread: Rollback last modification as it breaks regression test VeecoFTC/msvc-9.0~wm5~stlport5.2