Added eigen3 header library as a submodule

Eigen3 has been introduced as the backend library for the sparse
implementation of Topographica. Submodule links to git auto-mirror
that we expect to be reliable.
Implemented sparse projection and supporting components

Wrapped eigen3 SparseMatrix in C++, which is in turn interfaced with
Python using Cython. Topographica sparse components are implemented in
sparsecf.py, including a minimum set of learning, output and response
functions.
Added automatic compilation of sparse module if unavailable

If sparse module is unavailable, topographica script compiles Cython
source to cpp file, which is then compiled to a Python module using
distutils.