* added more stubs and other compute management:
   * instead of adding a single kernel at a time, opencl and cuda produce a program/module at first that contains all kernels in it -> reflect this behavior by adding compute_program (and opencl_program + opencl_kernel) that contains all its compute_kernels and is responsible for managing these
   * renamed add_kernel_file -> add_program_file, add_kernel_source -> add_program_source resp. and removed delete_kernel
   * added opencl_common.hpp header that contains all shared/common opencl stuff (header includes, cl_get_info code, version/conf handling), note that cl_get_info code is opt-in via defining FLOOR_OPENCL_INFO_FUNCS
   * opencl_compute::add_program_source now actually creates and stores opencl programs and kernels (and returns a ptr to the opencl_program)
   * opencl_program: for now, simply create kernel objects for all kernels within the program (will have to add a select option later on)
 * added workaround for clang/llvm 3.5 which doesn't emit the "spir_kernel" attribute for kernel functions by (ab)using the section attribute and then replacing it with sed (in the .ll file); this is required by the amd compiler, but ignored by the intel compiler
 * renamed FLOOR_CUDA_LIBCXX_PATH -> FLOOR_COMPUTE_LIBCXX_PATH (because it's actually used by all compute stuff)
 * added FLOOR_COMPUTE_CLANG_PATH that points to clangs own lib/include folder (this was already necessary before, but I didn't run into this problem until now)