[algorithms] Replace A and B BOOST_VARIANT_ENUM_PARAMS parameters with T...

This PR is an attempt to fix two tickets:
https://svn.boost.org/trac/boost/ticket/10467
https://svn.boost.org/trac/boost/ticket/10863

It replaces `A` and `B` parameters of `BOOST_VARIANT_ENUM_PARAMS(xxx)` with `T1` and `T2` respectively, which should play well with `B0` macro definition from `termios.h`. Replacement names was choosen because such names are already used in the library.

An alternative would be to use `T` and `U`, which seems to be the most commonly used template parameters names around Boost, e.g. `U0` is used in Fusion, Iostreams, TypeErasure. Shorter names means shorter symbols which is good for the compiler.