Fix meta_kernel streaming operators with float

This fixes a bug in the meta_kernel streaming operators with
float values. Now, float scalar and vector literals are inserted
into the kernel source with the proper 'f' suffix.
Remove cv-qualifiers from get<N>()'s value-type

This removes the cv-qualifiers for the value-type returned from
get<N>() expressions. This fixes issues when specializing based
on the type (e.g. pair, tuple).
Add specialization for get<N>() with zip_iterator

This adds a specialization for the get<N>() function when used
with zip_iterator's. Now, only the N'th iterator for the expression
will be dereferenced instead of dereferencing all of the iterators
into a tuple and then extracting the N'th component.
Refactor lambda expression framework to use meta_kernel

This refactors the lambda expression framework to use meta_kernel
to construct kernel source code instead of using plain strings.
Add test for any/all/none_if() with NaN and inf

This adds a test for the any_of(), all_of() and none_of() functions
with NaN and Inf values.
Change meta_kernel::add_arg(name, value) to add_set_arg()

This changes the meta_kernel::add_arg() overload with a name
and a value to a separate method. This fixes conflict when
using add_arg() with string values.