Fixing a bug in vex::random::philox
Simplified boost::compute interaction

Introduced
vex::compute::begin(const vex::vector<T>&, unsigned dev) and
vex::compute::end(const vex::vector<T>&, unsigned dev).

The functions return boost::compute::buffer_iterators for use in
boost.compute algorithms. This is possible due to recent changes in
boost.compute.