Stop assuming the type name of a user-defined function
Allow qualified names for function dependencies
Adding a thread-safety test.

This manages to crash the current VexCL when run with

    $ while ./threads; do echo; done

refs #124
Guard static members of device_options

refs #124
Use vex::cache for caching CUSPARSE handles

refs #124
Guard online kernel caches with mutexes

refs #124
Prevent saving binaries to the same file by several threads

refs #124
Continuing work on thread safety

refs #124
Replace std::mutex, std::unique_lock with alternatives from Boost.Thread

Because Visual C++. See #124