Improve some conversion operators.

- Add perfect forwarding
- Allow Maps and Sets to be created from Foldables instead of Lists
Add detail::std::{true_type,false_type}
Use BOOST_HANA_RUNTIME_ASSERT instead of assert in the tutorial
Make BOOST_HANA_RUNTIME_ASSERT enabled even in Release mode