- encapsulating implementation details in call_traits::member_function
- fixing some std::remove_reference that should actually be std::decay
- renaming get_member_typedef to get_member_type