Use a placeholder type for binary_element in the type map.

Having the placeholder type as container_type made some conditions fail
as the older iterator_range is too lax with its constructibility.
Replace iterator_range::drop_* with free functions
Fix BOOST_VERSION comparison.
Acknowledge boost-1.55.0 as minimum requirement.
Merge pull request #4 from chrismanning/boost_1_55_compat

Boost-1.55 compatibility