Iterate through available OpenCL platforms when searching for the fastest OpenCL device

Potential fix for #117. If you supply an invalid platformIndex (e.g. -1) to the OpenCLContext constructor, it iterates over all of the available platforms to find the fastest device. This is the same behavior that governs `deviceIndex`.