Add support for CLOGS scan primitive

Currently undocumented, and only specialised for cl_int.
Complete type traits for clogs, add a vector test

The generator for cl_double2 in random_vector.hpp has also been
generalized to handle all CL vector types.
Redesign the traits for clogs.hpp

The traits are now split into separate classes per trait (clogs_type and
clogs_is_scannable). They are also defined for vector types, and have
been taken out of the detail namespace so that users can extend them to
compatible types.
Put clogs wrappers into vex::clogs namespace to avoid conflict with built-in functions (the clogs wrappers are not entirely a drop-in replacements)
Partial integration of clogs::Radixsort.

The unit test currently fails, however.
Copy vals in detail::merge (fixes #104)
Fix up use of boost::fusion in merging for clogs
Fix invalid construction of clogs::Type
Rename clogs::sort_by_key to clogs::stable_sort_by_key, in case clogs ever adds a faster unstable sort
Make clogs sort test actually use clogs implementation, not vex implementation
Remove unneeded header
Simply clogs type registration using a macro
Update README.md with information about clogs
Fix vex::clogs::is_sort_key returning true for vector types
Add support for a non-identity initial element to clogs exclusive_scan
Document the vex::clogs namespace
Try to make { placement more consistent
Merge remote-tracking branch 'origin/master' into clogs-scan
Fix clogs scan when init is non-zero and there are multiple partitions
Merge pull request #108 from bmerry/clogs-scan

CLOGS support