Use the shared_ptr<> from Boost.

Not all implementations support the TR1, and if they do, the type
might not be in a namespace called std::tr1 .  Favour the
implementation from Boost for reasons of portability.

This is inspired (and necessitated) by commit OPM/opm-core@68eb3fb
which, incidentally, cleaned up some header pollution on which we
inadvertently depended.
Merge pull request #12 from bska/non-tr1

Use the shared_ptr<> from Boost.
added: download and build eigen3 from git if not found on system