introduce new macros to make it easier to use as_terminal
Protect use of boost::detail::iterator_traits

As of 1.56, boost::detail::iterator_traits is a mere using declaration.
We protect our use of this detail components with a check on Boost version.
disambiguating tribool
Merge pull request #764 from jtlap/tribool

disambiguating tribool
fasttotint added so that intrinsics which can quickly convert doubles smaller than 2^24 to long can be used by trig funtions
trig reduction uses fasttoint
fasttotint moved to fast_toint
using fast_toint on avx gains 1 cycle/element in trig functions
spurious iostream removed
fast_toint added for sse4_1
fast_toint unit and bench added and toint unit test extended
fast_toint moved from avx to avx2
double precision only unit tests temporaily removed from toint and fast_toint because native on arm and altivec do not support double precision
header corrected
introduce BOOST_DISPATCH_DECLTYPE, which gives a correctly qualified reference type
incorrect child in mtimes
use BOOST_DISPATCH_DECLTYPE instead of BOOST_DISPATCH_TYPEOF in AS_TERMINAL
implement as_terminal_inout
fix includes of toint in fast_toint + only define fast_toint on arithmetic
fast_toint moved from sse4.1 to sse2 and split_low used to upgrade the vector from int32 to int64