Check for valid range in reverse()

This adds a check to the reverse() algorithm to ensure that
the range contains at least two elements. Previously, passing
zero or one element ranges to reverse() would result in errors.
Mark streaming operator std::pair<> inline

This marks the meta_kernel streaming operator for
std::pair<> literals as inline.
Mark streaming operators for boost::tuple<> inline

This marks the meta_kernel streaming operators for
boost::tuple<> literals as inline.
Skip tests using struct assignment on AMD

This adds a check to skip tests which use fill() with pair and
tuple types on AMD platforms. There is a bug which crashes the
OpenCL compiler with an "UNREACHABLE executed!" message on AMD
platforms when using struct assignment in kernel code.

See: http://devgurus.amd.com/thread/166622