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.
Initialized eigen3 submodule
Added topo/sparse/__init__.py to enable usage of sparse component
Updated documentation of the sparse component Cython wrapper file
Added documentation to Eigen3 Sparse Matrix wrapper file
Expanded and cleaned up documentation of sparse Topographica components
Fixed indentation problems in sparse Cython module
Factored out ratio & unit number calculation from sprout+retract fn

Made sprout and retraction function more readable by factoring out
many of the CF-wise calculations of ratios and unit numbers. Also
fixed a number of parameter declarations.
Merge pull request #500 from PhilippJFR/master

Initial sparse-matrix implementation of CFs and CFProjections.