sopt bindings: sara_analysisop, sara_synthesisop

BasisFunctions class is iterable/getitem-able. It contains named tuples with informations regarding
the wavelets in the basis sets.
Two member methods create bindings for sara_analysisop and sara_synthesisop.
Move functors.pyx to measurements.pyx
Add missing tests to ctest framework
Creating scipy sparse matrix does not copy data

Turns out that scipy does not copy the input arrays when creating a sparse matrix explicitely (e.g.
from compressed values and indices). This means it wraps around the C arrays quite easily.

Changed docstring and test to reflect that.
However, current API is not safe, since the C memory is not handled by the python API. This can
result in numpy arrays with dangling data pointers. We should create a cython to explicitely manage
_SparseMatRow's memory.
Adding function to set void data structures from PURIFY C API
Inverted two parameters in image for ease of use

It seems that the field of view parameters from the image are never used in the C-API. Should
possibly move to implementation with pixels only.
Adding measurement operator

* Closes #20
* Closes #21
sopt.BasisFunctions->sparsity_ops.SparsityOperator

* renaming sopt to sparsity_ops
* renaming BasisFunctions to SparsityOperator
Correcting nose ctest interface
Adding parameter structures for solvers

Parameter structures are currently mostly equivalent to the existing C structures.
The parameters themselves are traits.
Initializing RNG with seed in example_30dor.c

The SOPT random number generator needs to be initialized by calling it with -seed as argument.
This was not done in example_30dor.c. Adding the initialization bit  makes it possible to compare
example_30dor.c quantities to those generated by the python bindings, since it provides an initial
state that the RNG can be reset to.
Moves non-debug statement out of assert

assert statements would wrap around `start = clock()` statements (to check for valid return from
`clock`). However, this meant the call was not made when compiled with NDEBUG. So all timings were
incorrect.
Adds SOPT RNG bindings for tests only

We want the same random numbers in both C and python when testing. This
requires python bindings for the SOPT random number generator. However, it is
better to use the many RNG tools out there, rather than the in-house one. So
this this binding is only available in testing.

Note: c144c8fddef5ec8d4d4cd53e50b587dccf479c45 makes sure the state of the
      random number generator can be set and reset
Setting wavelets in same order as in C examples

This makes for easier comparisons of quantities between C and python bindings.
Also changes property name SparsityOperator.shape -> image_size.
Radius parameter value is computable

Adds ability to set it to None so it might be computed later on.
merge with last params.py commit
Parameter classes accept any number of keywords

Will make it easier to include them as mixins later on.
Size parameter and Measurements parameter class
Function to read images

Sets images into top left corner of an image with height and width a power of
two.
Make voided data accessible from cython extensions

The C functions need extra data passed via a `void *` array.
The MeasurementOperator and SparsityOperator declare functions that take care
of this, so that the voided can be used from other extension types (namely the
solvers).

The MeasurementOperator especially requires an array of 5 void pointer to 5
different data objects. A specific extension type makes sure that this array
contains live objects that stay live.