pulling Evgeniy Dolzhenko's patch to add _.tap, with tests
(cherry picked from commit d49196f2e780800faaa85762116cdbb180d7c998)