Enable build against C++03 stdlib

Merged and squashed multiple commits for libstdc++ support
  std::conditional, std::move, std::function
using boost versions