Merge android-port & kernel-cache feature

Android port for merge

Major changes are in enabling kernel-cache
pocl_util.c : 
pocl_choose_dir() - chooses root folder for caching
pocl_create_source_dirs() - searches for matching program in sub-directories
other changes are either retaining files for caching or deleting unwanted files after cmpilation
use /sys/devices/system/cpu/possible file to find num-cores. Some android kernel shows no processor info on /proc/cpuinfo
plus pocl-android-sample in examples/
I'm not able to off hand point you to the APIs needed, sorry. Please check the Clang calls in pocl_llvm_api.cc and the Clang API docs for hints. I think a way to do this is to call Clang to preprocess the source and keep the preprocessed one and then if there's a kcache miss, try to reuse the preprocessed source in compilation to avoid getting that overhead again when building the kernel.