Introducing reduce_by_key algorithm

The implementation is adopted from HSA-Libraries/Bolt (it is distributed
under Apache license which is compatible with the MIT license used in
VexCL).

Closes #83