Add Eigen3 CMake find module

Imported from cmake/FindEigen3.cmake in Eigen 3.1. It is licensed
under the 2-clause BSD, which should be compatible with GPL as long
as the build system is distributed as source.
Allow user to specify path to Eigen3 library

By setting EIGEN3_ROOT, we can point directly to the path of the
library checkout we want to use. No other searching will then take
place.

Notice that if you have found an Eigen3 installation in a previous
configure, it will not find a new version even if you introduce the
EIGEN3_ROOT variable!
Allow mixed case name in variable (as for package)

Since the package is named Eigen3 (in mixed case), we should allow
for the variable to be named this way, too.
Use standard code to handle not found case

Instead of setting EIGEN3_FOUND ourselves, rely on the standard method
to check arguments and raise an error if not found.
Search common suffixes for include files

This allows us to set e.g. -DEIGEN3_ROOT=/usr/local, and have the
files actually be located in /usr/local/include/eigen3
Require the newer 3.1 version of Eigen
Add support for Eigen3 in Autotools compatibility layer
Merge pull request #325 from rolk/325_eigen

Make probe for Eigen3 part of the common build system