Add sort_by_key for oclMat.

As there was no real cross-platform OpenCL sorting framework (AMD's BOLT library current only supports AMD OpenCL SDK), we experimentally adapted four `sort_by_key` methods from AMD's Bolt library.

Including:
```
SORT_BITONIC,   // only support power-of-2 buffer size
SORT_SELECTION, // cannot sort duplicate keys
SORT_MERGE,
SORT_RADIX      // only support signed int/float keys
```