Add benchmarks for reverse

Added STL and Compute benchmarks for reverse()
Merge pull request #67 from roshanr95/reverse_benchmarks

Add benchmarks for reverse
Move transform_if() algorithm to experimental
Add event::set_callback() method

This adds a method to the event class which allows the user to
register a callback function to be invoked when the event reaches
the specified state (e.g. when it completes).
Improve documentation