FEATURE: Making BOOST_FUSION_AUTO_ADAPT_STRUCT variadic.
DOC: Add some comments to help me understand the adapt macros.
FEATURE: Type deduction for BOOST_FUSION_ADAPT_STRUCT_C_BASE, with preliminary support for providing or deducing the type.
FEATURE: Types of a struct can freely pe provided or deduced, following the user preferences.
BUGFIX: Presents the correct field name as a string even if type is deduced.
EDITORIAL: Cleaning the ADAPT_STRUCT which can deduce types.
Remove dependency to variadics macros for the old API not deducing types.
Improve the BOOST_FUSION_ADAPT_STRUCT macro to work also when there is no variadic support.

This enable the following flexible macro signature when there is
no BOOST_PP_VARIADICS support:

BOOST_FUSION_ADAPT_STRUCT(
    struct_name,
    (member_type0, member_name0)
    (BOOST_FUSION_ADAPT_AUTO, member_name1)
    (,member_name2)
    ...
    )

If BOOST_PP_VARIADICS is active then there is quite more flexibility as it
allows to avoid the type specification:

BOOST_FUSION_ADAPT_STRUCT(
    struct_name,
    (member_type0, member_name0)
    (BOOST_FUSION_ADAPT_AUTO, member_name1)
    (,member_name2)
    (member_name3)
    ...
    )
FEATURE: BOOST_FUSION_ADAPT_STRUCT can now also be called completely with
variadics arguments.

The following signature is possible :

 BOOST_FUSION_ADAPT_STRUCT(
        struct_name,
        member_name0,
        (BOOST_FUSION_ADAPT_AUTO, member_name1)
        (member_type2, member_name2)
	member_name3,
        ...
        )
Moved BOOST_FUSION_ADAPT_STRUCT implementation details to detail/adapt_base.hpp
Fix detection of member_type parameter emptiness for BOOST_FUSION_ADAPT_STRUCT.

As BOOST_PP_IS_EMPTY is not a general purpose emptiness checker, we limit
the ways it can be used.
Renaming macros for ADAPT_STRUCT to deduce type or take provided attribute types.
Factoring out of adapt_struct.hpp all the FILLER_* macros details.

As of BOOST_FUSION_ADAPT_STRUCT without type deduction, there were only
simple attributes filler. Now this need more complex logic to handle both
API: the backward compatible one with type specificiation, the one without
type specification and the non-variadic one which enables omitting the type
specification by providing BOOST_FUSION_ADAPT_AUTO instead of the type.

That's why I extracted the FILLER_* macros details in a separate source
file.
Added new ADAPT_STRUCT API support for the ADAPT_STRUCT_AS_VIEW macro.
Enabled new ADAPT_STRUCT_API for ADAPT_TPL_STRUCT.
Adding documentation of the new ADAPT_STRUCT and ADAPT_STRUCT_TPL macros,
capable of deducing type.
Removing AUTO_ADAPT_STRUCT_NAMED, AUTO_ADAPT_ASSOC_STRUCT and AUTO_ADAPT_ASSOC_STRUCT_NAMED.

As discussed with Agustín Bergé and Joel de Guzman on https://github.com/boostorg/fusion/pull/3,
it's better to remove the separate macro for the type deducting macros, and
to instead support a flexible API allowing backward compatibility and type
omission.

This is what ADAPT_STRUCT and ADAPT_STRUCT_TPL now provides. All other
macros will be improved in the same way in the following commits.
Added test for the new ADAPT_STRUCT API capable to deduce member types.
Fixed typos and inconsistencies in ADAPT_STRUCT documentation.
Remove deleted unit tests from Jamfile.