opencl device sorting

Fixes #22 

All GPU devices on any platforms are listed first, followed by
accelerators and finally CPUs.