Fix issues with char literals in meta_kernel

This fixes issues when using char and unsigned char literals in
a meta_kernel. Previously the character values would be directly
inserted without quotes (e.g. c instead of 'c') which lead to
kernel compilation errors.
Fix issues with std::pair<>, char, and fill()

This fixes issues when using std::pair<> containing char
types with the fill() algorithm.
Fix issues with boost::tuple<>, char, and fill()

This fixes issues when using boost::tuple<> containing char
types with the fill() algorithm.
Check for valid pattern size in fill() disptacher

This checks for a valid pattern value size before dispatching
to the clEnqueueFillBuffer() function for the fill() algorithm.
Fix compilation error in future<void> assignment operator

This fixes a compilation error which occurred when assigning
to a future<void> from a future<T>. For different future types
the event member variable is private and must be accessed via
the get_event() method.