CUDA framework for menpo

The aim of this framework is to simplify as much as possible the development and use of future modules written in CUDA. The idea was to consider that the choice of using or not CUDA should be made Python-side in order to allow the user to choose between the classical algorithm or its CUDA implementation.

Checking if CUDA is available or not is quite straightforward:
```Python
from menpo.cuda.tools import is_cuda_available
if is_cuda_available():
    #run CUDA version
else:
    #run non-CUDA version
```

Adding CUDA modules is also intuitive. It can be done by adding the `*.pyx` file in the list `cython_cumodules` of `setup.py`.
This may be something we need to change. In brief, it is possible to structure `setup.py` so that it doesn't need `cython` - this is what has been done in both [cyrasterize](https://github.com/menpo/cyrasterize/blob/master/setup.py#L54) and [cyassimp](https://github.com/menpo/cyassimp/blob/master/setup.py#L36). I never got around to doing it for menpo, but it should be feasible as well.

`cythonize` only generates the .cpp/.c files which are then compiled as normal Python extensions. When you `pip install menpo` we actually ship to the user the cythonized sources in the bundle from PyPI - so there is no need to rerun cythonize (and hence no need to have Cython installed). The benefit of this is that users can in theory `pip install menpo` without cython installed and everything will still work.

Perhaps it's best to leave this as is for now, but in the future we can revisit this and apply this pattern to avoid throwing an error if users attempt to install without cython.