Merge pull request #298 from matthew-brett/hrfs-cleanup

MRG: clean HRF module and add SPM HRFs

Some small cleanup to hrf module.

This pull request adds the SPM HRF, the SPM temporal derivative, and the SPM spatial derivative, along with a function to replicate spm_hrf.m in the SPM distribution.

Add SPM HRF, with temporal derivative and spatial derivative. Check
against saved output from SPM code.
BF: zeros for zeros_like for numpy compatibility

Older Numpies don't allow dtype= keyword to ``zeros_like``; use
``zeros`` instead.
RF: remove sympy fixes, depend on sympy 0.7.0

Drop compatibility layer for sympy < 0.7.0
RF: doctest uses Term rather than symbol

Latest sympy lambdify needs the symbol on the left and the right hand
side of a lambdified function to be the same.  Hence we need 't' to be
the term 't' not any sympy symbol 't'.  At the moment we're using our
own replacement for lambdify, but this change allows us to use the stock
lambdify as of 0.7.3
RF: raise TypeError for removed 'each_char` kwarg

Sympy deprecated 'each_char' kwarg to symbols sometime >= 0.7.0, and
removed for sympy > 0.7.3, but without raising an error.  For safety, we
raise an error.
RF: use explicit sort key for sympy sorting

Sympy > 0.7.3 raises an error attempting to sort sympy expressions
without a key, but provides ``default_sort_key`` for backwards
compatibility.
BF: change in sympy sorting changes doctest output

We've changed from using ``sort`` on sympy expressions, to using
``sort(expr, key=sympy.default_sort_key)``, in order to support sympy
trunk (> 0.7.3).  Unfortunately, these produce different results when
sorting dummy variables, as in:

In [38]: a = sympy.Symbol('a')

In [39]: b = sympy.Dummy('b')

In [40]: sorted([a, b])
Out[40]: [a, _b]

In [41]: sorted([a, b], key=sympy.default_sort_key)
Out[41]: [_b, a]

I can't think of a way round this, so just change the failing doctest to
use the new order.