Fix unused parameter warning in reduce_on_gpu.hpp
Include <boost/mpl/size.hpp> in function.hpp
Change program::build() to return void
Add user_event class
Refactor recurring code into preprocessor

Makes it easy to add specialisations
Fix unused variable warning in test_user_event.cpp
Change perf_sort_by_key to use int_ and long_ instead of int and long
Merge pull request #90 from roshanr95/perf_sort_by_key

Fix errors in perf_sort_by_key
Build benchmarks on Travis-CI