Spruce up documentation build

Closes #96.

Documentations output is located in build/doc/cpp and build/doc/python.

There are at most three targets:

- python_documentation
- cpp_documentation
- documentation (calls the other two)

This commit also spruces bits and pieces in the build files.
Adds first cython wrapper and test

- a basic cython Grid object acts as  a pimpl wrapper for the virtual base
  class (#127)
- added test loading example grid
- shared_ptr pxd wrapper
- wrapper to catch c++ exception (#138)
- added a cmake-configurable file with paths to mesh and such (#137).
Moving unit tests to mirror directory structure

This also makes it easier to keep the old python unit-tests.
Can now create Cartesian grids

* Adds very basic support for armadillo (#142)
* Adds Dune::IOError to PyExc_IOError mapping (#138)
Adding more test for failing Grid construction
non-ASCII character in file
Added grid creation via connectivity input
Modified selection of grid creation method

Reimplementation should make it less likely to screw up when adding future
creation methods.
Simplifying python -> armadillo conversion (#142)

The conversion is currently a three step process:

1. Convert the python object to numpy using require. This process will not
   create a new array if the input is already an array of the right type.
1. Convert to a memory view using cython's buffer declaration "int[::1] buffer"
1. Construct an armadillo wrapper around the buffer

The process is a two line code. Say for a matrix:

~~~{Cython}
int[::1, :] buffer = require(input, "intc", 'F')
Mat[int]* armadillo = new Mat[int](&buffer[0, 0],
    buffer.shape[0], buffer.shape[1], False, True)
try:
    # Do something with armadillo matrix
finally:
    del armadillo
~~~

The armadillo object should be destroyed explicitly, as above.
Added bounding box bindings
Moving python grid wrapper to its own subdirectory
Export failed when external root contained "~/"

Export mechanism now creates BemppConfig.cmake using absolute prefix.
Adding python bindings for fiber.QuadratureOptions
:bug: Wrong binding for TETRAHEDRAL topology
:bug: Wrong binding for TETRAHEDRAL topology
Add option to freeze QuadratureOptions

Freezing the options can only be done cython side. It is tested by creating a
small cython module in testing. As a result, the tests are now fully fledged
sub-packages of bempp.
Add wrappers for AccuracyOptions

The wrappers are almost a reimplementation of AccuracyOptionsEx. This is meant
to expose a bit more than straight c++ would allow.
Might be changed later on if inadequate or if snowballs.

Goes some way towards #129.
Start of an options class

This class is created via mako
Changes bempp target to libbempp

This is to accomodate a python bempp target.
Adding tests for aca options

This is the first complete python module with mako.
Python headers are now handled independently. This is necessary since the
cython source files depend on the generated cython header files. So all mako
generation should happen before cython is called.

In order for cython to find generated and normal pxd files, the headers are all
installed within the bempp package. This goes some way towards #139.

Also goes some way towards #128.