Fixed RF measurement code, reducing sampling rate and area now works

RF measurement previously sampled the input sheet incorrectly when
the sampling rate was decreased from full sampling. Now correctly
samples input sheet for all sampling values and sampling area can be
restricted.
Fixed default parameter values and names in RF measurement code

Renamed sampling parameters in RF measurement code to be more
descriptive and gave them better default values.
Get version information from Git
Ported changes from d0dbb13 to Python <2.7
Updated legacy.py to understand the new topo.version format
Removed outdated fix to SharedWeightCFProjection that would have caused incorrect results for any coord_mapper on a SharedWeight projection other than IdentityMF, probably since SVN revision 10479 (6/2009).  Luckily we are not aware of anyone who would have used such a coord_mapper during this time.
Updated numpy usage, imports and types in topo/base/cf.py and removed MaskedCFIter

Replaced individual imports from numpy with single import and made
type definitions explicit where they weren't already. Changes
norm_total property from float32 summation to float64 summation.
Also eliminated empty or very old comments and deleted the CFIter
alias MaskedCFIter, which was spread through a number of files.
Replaced the action performed for apply_output_fns_init in CFProjection

Previously setting the apply_output_fns_init flag to True, passed
the single_cf_fn's contained within the weights_output_fns to the CF
level. This commit changes this behaviour, calling the
apply_learn_output_fns method at the projection level without an
active_units_mask, effectively performing the same operation but
improving consistency.
Removed calls from compute_joint_norm_totals_opt to norm_total property

The compute_joint_norm_totals_opt function in topo/sheet/optimized.py
was accessing the Python property norm_total for each CF, which is
a) a lot slower and b) in previous versions entailed 32-bit accuracy
summation of weights (something that has since been fixed). This commit
does the summation in C, speeding up the operation and making it
more consistent with other optimized functions.
Removed superfluous MaskedCFIter import in testcf.py
Temporarily reduced the decimal point accuracy of traintests

The decimal points accuracy of traintests is temporarily reduced
from 7 to 6, to ensure tests pass after some norm_total summation
accumulators were upgraded from 32-bit to 64-bit. This should be
reverted before v1.0 and the test data be replaced.
Readded CFIter alias MaskedCFIter for user compatability

Should be removed before release v1.0
test commit for buildbot
test commit for buildbot
test commit for buildbot
Created C macros for summing CF weights and setting the mask threshold

Introduced two new macros to handle weight summation, calculating the
norm_total for each CF and to globally the define the mask_threshold
below which the weight is disregarded during weight summation. The
threshold was updated from 0.000001 to 0.5 for more robust comparison
but may break backward compatibility for models that use smooth CF
weight masks.
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