Remove BLAS functions

This removes the incomplete BLAS API functions.
Add not1() and not2() function adaptors

This adds the not1() and not2() function adaptors which
negate unary and binary functions respectively.
Add as() and convert() type-conversion functions

This adds the as() and convert() functions for converting
between OpenCL types.
Rename ext.get test to functional.get

This renames the ext.get test to function.get.
Store source strings for binary and ternary functions

This fixes an issue in which the source strings for binary
and ternary functions were not being stored and thus not
being inserted into kernels when they were invoked.
Add min_and_max reduce() test

This adds a test for computing the minimum and maximum
values of a vector simultaneously using reduce() with a
custom reduction function.

Also fixes a bug in reduce() in which inplace_reduce() was
being used even if the input type and result type differed.
Add test for calculating mean and standard deviation

This adds a test which uses reduce() and transform_reduce()
to calculate mean and standard deviation.
Add perf_mersenne_twister benchmark

This adds a benchmark for the mersenne_twister engine.
Add unpack() function adaptor

This adds a new unpack() function adaptor which converts
a function with N arguments to a function which takes a
single tuple argument with N components.

This is useful for calling built-in functions with the tuples
values returned from zip_iterator. This also removes the now
un-needed binary_transform_iterator.