Make type_name<T>() inline

This adds the inline specifier to the type_name<T>() function.
Add BOOST_COMPUTE_TYPE_NAME() macro

This adds a macro for registering custom type names for C++ types
to be used in OpenCL kernel code. Internally the macro specializes
the type_name<T>() function.