Sparse implementation

Proposed Topographica sparse support for using Eigen3. Eigen3 auto-mirror added as submodule in external directory. Uses C++ and Cython wrappers to interface Eigen3 with SparseCFProjection and all files are in topo/sparse/. SparseConnectionField objects are views of the sparse matrix owned by the SparseCFProjection and support the normal interface for CFs.

Code has been tested for numeric accuracy and matches dense results identically if active_units_mask is disabled, otherwise matches to 7 dp. Supports sufficient functionality for real work but code may require further tidying.

Philipp & Jean-Luc