Adds support for OpenCL accelerators.

Also allows the user to select a platform with DEFAULT_TYPE devices
or any platform.