clover: Use std::numeric_limits<std::size_t>::max() instead of SIZE_MAX

This prevents a build failure on some systems.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
clover: Require GCC 4.7 or higher to build.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Import new utility library.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Clean up the event profiling code.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Replace a bunch of double underscores with single underscores.

Identifiers with double underscores are reserved, and using them has
undefined behavior according to the C++ spec.  It's unlikely to make
any difference, but...

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Name include guards consistently.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch to the new utility code.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Clean up property query functions by using a new property_buffer helper class.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Define helper classes for the new object model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch platform objects to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch device objects to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch context objects to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch event objects to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch command queues to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch kernel and program objects to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch memory objects to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Switch samplers to the new model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Add property list helpers with a syntax consistent with other API objects.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Simplify the platform object by using util/range.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
clover: Define a few convenience equality operators.

Tested-by: Tom Stellard <thomas.stellard@amd.com>