Added convenience function for retrieving a context: viennacl::ocl::get_context(i)
Updated constructors such that they accept an ocl::context as another argument.

Injects quite a number of additional ifdefs. Maybe it's better to generalize this
into backend-independent contexts.
Updated multithreading example. Now vectors can also be allocated for each vector separately.