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.