Use contrib/ eigen when 3rd party eigen is bad

Currently if we detect 3rd party Eigen installations but have trouble
compiling Eigen headers (e.g. with old versions of Eigen/Sparse) we
disable eigen entirely.  We should fall back on the contrib/ Eigen
instead.

This fixes Eigen detection on ScientificLinux 6 for me.  If we ever bump up our Eigen version requirements, though, we'll need a more extensive fix.