Use Boost.Align for aligned allocation
Merge pull request #2 from glenfe/develop

Use Boost.Align for aligned allocation
Removed unused include.
Changed all references to empty_deleter to null_deleter in Boost.Core.
Updated the default Windows version to Windows XP. This is partially done to work around ticket #10016.
Ported to core/demangle.hpp. Added noexcept specifications to type_info_wrapper methods.
Fixed unhandled_exception_count() with gcc and clang.
Added BOOST_STATIC_CONSTANT macro to translate by Doxygen.
Added BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT macro to Doxygen predefined macros.
Removed non-ASCII characters from comment.
Fixes #9320. Added a workaround for MSVC bug that causes invalid reference being saved in add_value_manip.
Fixed incorrect element insertion.

The inserted attributes and attribute values could sometimes be left not-findable by find() method and other methods that rely on it. The elements were still obtainable through iteration.
Added noexcept specifications. Simplified code in some cases.
Corrected compiler switches to enable AVX2 and SSSE3 for Intel Compiler. Disabled some bogus warnings as well.
Removed most of Boost.Spirit from the parameter partsers to speedup compilation and reduce binary sizes. This also significantly reduces memory consumption in case of Intel Compiler (down by ~600MiB).
Added a missing include.
Added -lsocket for QNX.
Added more linking switches for compatibility with different platforms.

The switches were taken from Boost.ASIO Jamfiles as most of them are needed to build network-related code. Also replaced the linkflags with libraries so that Boost.Build takes care of the actual flags.
Use low-level Qi extractors instead of qi::parse to reduce compile times and binary sizes.
Extracted text_multifile_backend implementation to a separate file.