Merge pull request #29 from scf32/master

variant.rst updated with PR demo
add pyopencl as an extras dependency
update travis to test with and without opencl
travis: install AMD's CPU OpenCL implementation
travis: enable APT package caching
travis: install numpy before all other things

PyOpenCL requires numpy be available at build time which it will not be
if pulled in as a dependency of dtcwt. Explicitly install numpy first.
add low-level opencl filtering routine
opencl: remove unused code in kernel
opencl: fix coldfilt in case where h . rev(h) > 0
opencl: fix coldfilt when given 2d vector filters

The np.dot call complains about the vectors being mis-aligned. Use the
flat iterator to fix this.
remove dependency on memoized

memoized uses cPickle internally which is a Python 2-only package. Since
memoization is a fairly simple thing to implement directly, do so.
opencl: support importing without pyopencl

Allow importing of the opencl code but raise a NoCLPresentError if one
tries to use it without OpenCL installed. This allows the tests to be
skipped on machines without an implementation. It also allows Sphinx to
process API documentation for OpenCL modules even if OpenCL is not
present.
move SkipTest import

The import for SkipTest was in the wrong file. This was a hang-over from
a previous implementation.
opencl: fix for non-floor division in Python3

In Python 3, the / operator has changed its behaviour. The // operator
has been around in Python forever, use it instead. For good measure,
import the non-floor / operator to catch further abuses in Python 2 too.
opencl: speculative fix for non-C-contiguous arrays

On my machine, the original code works fine but under travis, it moans
about C-contiguity of arrays. Specify explicitly that the output should
be C-contiguous.
opencl: add (very) simple benchmark script

This script will not win any awards for cleverness but it exercises the
three low-level filtering routines to see what speed up one gets. Note
that, at the moment, the colifilt routine is un-accelerated.
travis: add benchmark script to run
update opencl benchmark script to handle no-OpenCL case

The output from the script is now not terribly edifying if there is no
OpenCL present but it shouldn't fail.
avoid divide-by-zero in benchmark script
opencl: first pass at colifilt