Starting space implementation

Space can now be easily added.
Still constructing functions to easily create the whole zoology.
Adds wrappers for spaces

Spaces are defined in python/mako/space.py using a dictionary that specifies
the header, class name, implementation, docstring, and characteristics.
In practice, a fair number of these quantities are guessed from the name of the
class.

As far as the user is concerned, creating a space comes down to:

>>> from bempp import Grid, scalar_spaces
>>> grid = Grid(....)
>>> quadratic = scalar_spaces(grid, 'float32', order=2)

A number of different scalar spaces are available. There are yet no wrappers
for vectorial spaces.
:bug: in tests from bempp->libbempp target change

Introduced in c125db1. Did not correct test projects then.
Remove unnecessary file
More explicit docstring for range_accuracy_options
Cython 0.19 does not allow dosctrings for variables in pxd files
Cleaned up cython typedefs header

The file defines typedefs to avoid overly nested templates cython can't handle.
We only need to declare explicit complex types at this juncture.
Build system does not rebuild bempp.space everytime

Somehow types.h (from types.mako.h) was always newer than space_cython.cc,
which meant the whole deal would be rebuilt everytime. Changed the build system
to generate mako files directly into the python binary dir. This means one less
add_python_module and attendant target. It is a bit cleaner and gets rid of the
problem.
:bug: in build introduced in 292b4c6

Building/installing __init__.py files to the wrong place.
Adding test_spaces.py to the ctest framework
Default scalar_spaces was not contant-piecewise
Space.grid is initialized and readonly

Add initialization and read-only tests.
Merge pull request #155 from bempp/rsdt/cython_spaces

Rsdt/cython spaces