Adding boost finder/installer
Now adds correct library variables for boost
Adding armadillo find or install
Adding compile definitions with armadillo

Should really check for blas and lapack first. But since the idea is to later have a blas and lapack
install, I'll leave this for later.

These compile definitions should cover the "patch" for armadillo in the original build system.
External step where cmake calls itself

This allows external project to catch themselves once they have installed themselves.
This stuff is put in a separate script file, cos we are going to use it over and over.
Added recursion protection to cmake recusion step

Also added swig lookup test
Changing filenames
Simplifying boost lookup (Issue #55)
Adding tbb lookup (Issue #56)
Unsets TBB variable if partially found

Makes sure that TBB is found fully or not at all. Otherwise could end up with debug library from one
version and release from another.
remove debug message
Redesigned recursive cmake step

Now checks whether a required package is found after installation
Adding dune external installer (Issue #58)

* Downloads and installs dune-common dune-geometry dune-grid dune-local functions, each as a
  separate external package. Configures, builds, and installs using the new "experimental" cmake
  build system.
* Copies dune-foamgrid from contrib in source. Installs it as an external project by first
  "patching" it with a small cmake script that detects *.hh files.
* Adds an external project that creates a dummy duneproject module. Configure and builds it. Now we
  have an official config.h file from the dune project. installs it as dune-config.h
* Have yet to look at other patches from the series.
Not needed in dune-grid-2.3.0 (Issue #58)

Seems implementation has changed sufficiently in 2.3.0 that this patch is not valid anymore. "dims"
becomes "_dims" and a FieldVector. FieldVectors do not have operator(), so patch can't be right
anymore.
Adding patches for dune (Issue #58)

dune-localfunction_*: These patches cast 1.0 to the relevant type

Patches are now applied via a cmake script.
The script mimics sed: it applies a regex replace.
The advantage is that the patch should be more robust with respect to changes in the file than using
diffs, as in current implementation. The disadvantage is that it will fail silently if the
implementation changes those patterns. That could be good (bug was corrrected) or bad.
Another advantage is that the scripts is nominally more portable, in the unlikely event that BEM++
is installed on a system without the patch executable.
Variable specifying library built by project

Adding an external project (with recursive cmake step) adds a variable to let cmake programmers know
that the external project is built by bempp.
variabke is name_BUILT_AS_EXTERNAL_PROJECT
Added messages and MD5 hashes where possible
Adds trilinos as external project (#Issue 60)

Adds an option for mpi. Not sure this is right.
Did not add patch just yet.
Adds root external project to cmake prefix path

This helps ensure newly installed external project are found by cmake.
Needed by Trilinos, for instance.
Refactoring package lookup

* Now with its own cmake package file and functions
* Multi-file recipes can be stored in directories