test_safeptr_builtin: exercise the new vload implementation

Properly end from end-to-end that the overflowing data is handled
Moved pocl libraries into their own directory

Also added separate compilation of pocl libraries; this speeds up
testing.

Currently this requires running "make pocl/library.bc" in the toplevel
before running tests.
Copied most of the cl-side from pocl

Remaining to copy were image support, barriers and some auxiliary
functinos.
pocl_kernel.h: IS_IN_RANGE uses tighter bounds

This prevents accessing data over boundary when using unaligned
pointers.
pocl: implemented no-op barrier

This is useful for running existing cl code using barriers. Use
work group size 1.
pocl_kernel.h: implemented safe atomic functions
FakeCL: Implemented a minimalistic CPU-based OpeCL engine

This allows running test cases from rodinia test case set with few
changes. Later on it will be possible to switch to use safe pointers
in the interface.

Currently rodinia/opencl/pathfinder works. More functionality will be
added for other test cases.
FakeCL: Implemented some clGetDeviceInfo parameters
pathfinder: copied a test case from rodinia 2.3
pathfinder: patched to use FakeCL
pocl_kernel: atomix_xchg -> atomic_xchg
FakeCL: string parameters are nil-terminated
pocl/barrier: declare only prototype

This allows implementations (FakeCL) to come up with their own definitions.
pocl_kernel: omit some definitions for FakeCL (for now)
run_kernel: dropped accidental dumping of the TOPDIR variable
Build pocl library for FakeCL differently, some functions don't quite work
pathfinder: initial support for compiling in safe mode

Only includes changes in the build side. This will require changes
in FakeCL as well.
FakeCL: renamed header file to .h in anticipation of C compatibility
FakeCL: made the heaader file C-compatible
FakeCL: cleaned up, added some documentation