Supporting Intel Core i7 CPU As Good As GPUs

- Bug fix on multithread memory manipulation.
- Handle different interpretation of Python infinity by different
processors. NVIDIA GeForce GT 650M catches it as 9223372036854775807
but Intel Core i7 catches it as -9223372036854775808.
- Add new parameter to select different OpenCL device types (CPU or
GPU) called ocl_device_type.
- Add new functions for debuggning.