Partially Adding OpenCL Support (Not Activated Yet)

- Use PyOpenCL module
- Add OpenCL directory to store OpenCL files
- Add new DockOpenCL and GeneticAlgorithmOpenCL classes to handle
OpenCL portion
- Add "accelerator" keyword in DPF file to select between sequential or
OpenCL implementation
- Add support to handle NumPy data format. PyOpenCL only read variables
from NumPy. The convention will be variable_np for NumPy data format
stored in the host (CPU) and variable_buf for OpenCL data format stored
in the device (GPU).
- For genetic algorithm, add individuals initialization using OpenCL
- For docking, add branches rotation and ligand transformation using
OpenCL
- Note: float and integer in Python are 64-bit version which converted
to OpenCL C++ as double and long respectively
Adding OpenCL Energy Calculation

- Add intermolecular (elec and emap) energy calculation
- Add intramolecular (internal) energy calculation
- Add total energy calculation
- For genetic algorithm, add chances calculation based on scoring result
Adding Reproduction for Genetic Algorithm in OpenCL

- Add selction, crossing over, and mutation portions