Support generic function callbacks for event
Add event::duration() method
Rename K to K_BITS in radix_sort()

This should fix the following error seen on the Apple OpenCL
implementation when compiling the radix_sort program: "error:
definition of macro 'K' conflicts with an identifier used in
the precompiled header".
Add unique_copy, modify unique to use it
Add tests and benchmarks for unique_copy
Merge pull request #97 from roshanr95/unique

Fix errors in unique
Change BOOST_COMPUTE_FUNCTION() to use custom argument names

This changes the BOOST_COMPUTE_FUNCTION() macro (and the related
BOOST_COMPUTE_CLOSURE() macro) to use custom, user-provided argument
names instead of auto-generating them based on their index.

This is an API-breaking change. Users should now provide argument
names when using the BOOST_COMPUTE_FUNCTION() macro. The examples
and documentation have been updated to reflect the new API.
Remove unnecessary typename in function.hpp and closure.hpp

This fixes a warning when compiling these files with clang.
add default_cpu_device() and default_gpu_device() to complement find default_device()