Addressed unused return value warnings.
Take more care with synchronous writeImage.
Added more initialization options.

Direct selection of GPU, CPU, or by a user-provided predicate.

Added an imperative mutable-state-heavy interface for sharing state
between multiple CL action executions. This provides a way to share
program parse state and allocated resource cleanup actions across an IO
action. For example, within main, you may want to run OpenCL actions at
several distinct points. This provides a way of sharing state between
those execution points.
Add linear types for Image interface.

Types from the linear package provide a nice way of interfacing with
various OpenCL image types (e.g. images with 1,2,3, or 4 color
channels).