[WiP] OpenCL support

OpenCL support
* `numba.ocl` namespace
* OpenCL driver bindings
* code generation thought SPIR 1.2
* vectorize support

Only tested on Linux + AMD hardware

The lack of generic address space support is making it difficult for high-level programming.  Current implementation assume all array in global memory space.  The lack of inttoptr/ptrtoint also makes array with non contiguous layout (numpy order 'A') impossible.  These limitation poses a barrier to further implementation.

We can provide this as an experimental support.  OpenCL 2.0 will have generic address space and may make inttoptr/ptrtoint possible.  

TODO:
- [ ] clean up user interface
- [ ] math functions