Initial modular patch, from Bjorn.
MPL: Remove use of obsolete BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS

This macro is no longer defined for any compiler.
MPL: Remove use of obsolete BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
MPL: Remove use of obsolete BOOST_MPL_CFG_NO_APPLY_TEMPLATE

It was only defined for MSVC versions which are no longer supported.
Undo previous commit, it was meant for another branch
[geometry] added missing template keyword, not catched by clang 3.0 but catched by 3.2
MPL: Remove MSVC workaround for void templates.
MPL: Remove assert workaround for no-longer-supported MSVC.
Remove use of BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
Remove use of obsolete BOOST_EXPLICIT_TEMPLATE_TYPE{,_SPEC} macros.
Remove use of obsolete BOOST_EXPLICIT_TEMPLATE_NON_TYPE macro.
Remove use of obsolete BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE{,_SPEC} macro.
Remove use of obsolete BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE macro.
Python: Simplify object_operators implementation.

The old-MSVC-specific version is no longer needed.
Add experimental variadic templates support to Boost.Variant, enable usage of variadic version for gcc-4.8, clang-3.0 and later compilers (refs #9163)
With this patch size of a binary siginificantly reduced (up to two times)
IOstreams: Remove obsolete MSVC version check
Config: Remove obsolete MSVC version check
Array: Remove obsolete MSVC version check.
Asio: Remove obsolete MSVC version check.
DateTime: Remove obsolete MSVC version checks.