OTH: add .mailmap to fix git-shortlog
NEW: added failing test for wrong sorting of SVDs
FIX: fix wrong sorting of eigenvectors in degenerate case for SVD.

Thanks to Yaroslav Halchenko for reporting and fixing!
Merge branch 'master' of github.com:mdp-toolkit/mdp-toolkit

* 'master' of github.com:mdp-toolkit/mdp-toolkit:
  OTH: add .mailmap to fix git-shortlog
FIX: Removed the leftover _global_message_emitter attribute (as reported by Tiziano and Hannah).
ERF: added a failing test for reload

MDP does not work with reload. See
https://github.com/mdp-toolkit/mdp-toolkit/issues/1 for details.

Thanks to Yaroslav Halchenko for reporting it.
ERF: modified namespace cleaning strategy

Instead of explicitly deleting the file names from the subpackages
namespaces, we now let the fixup_namespace function take over the
work. This also means that now MDP works with 'reload'.

This fixes https://github.com/mdp-toolkit/mdp-toolkit/issues/1
OTH: remove trailing and unnecessary whitespace
FIX: typo
ENH: remove comma after version if revision not known
ENH: recurse into class attributes when doing namespace fixups

After this change, methods like mdp.nodes.IdentityNode.__init__ have
the same __module__ attribute as the class to which they are
attached. This increases consistency, and has the additional advantage
that when epydoc looks at the methods and their __module__ attributes,
it is not confused by un-reachable modules.

Removes epydoc messages like:
Warning: __init__'s docstring is not a unicode string, but it contains
  non-ascii data -- treating it as latin-1.

ver. 2: add documentation string
FIX: add two theoretically useless encoding marks

... in hope that they help epydoc.

After the __module__ attributes are properly faked, epydoc and sphinx
actually look at the exporting module for the information encoding.
When utf-8 encoding marks are added, epydoc and sphinx think that all
exported classes' docstrings are unicode. This is OK, because
everything will be either be either ASCII or UTF-8.
ENH: run namespace_fixupication on ICANode

The node is not exported in __all__ because it not supposed to be used
directly. But we want to run namespace_fixup() on it anyway. Let's do
it explicitly.
Merge branch 'fixup-namespaces-recursively'
FIX: py3k compatibility for reload

reload() is moved to imp.reload().

It also seems that Python 3 behaves slightly differently wrt. reloads.
For some reason, mdp.configuration is not imported properly on reload.
Let's just not remove the name from the namespace, as this is the
easiest fix.
FIX: old joblib breaks imports from sklearn.decomposition

>>> import sklearn.decomposition
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/sklearn/decomposition/__init__.py", line 8, in <module>
    from .sparse_pca import SparsePCA, MiniBatchSparsePCA
  File "/usr/lib/pymodules/python2.6/sklearn/decomposition/sparse_pca.py", line 10, in <module>
    from .dict_learning import dict_learning, dict_learning_online
  File "/usr/lib/pymodules/python2.6/sklearn/decomposition/dict_learning.py", line 17, in <module>
    from ..externals.joblib import Parallel, delayed, cpu_count
ImportError: cannot import name cpu_count
>>> joblib.__version__
'0.4.3'
FIX: fix broken links.
OTH: added failing test for no eigenvalues left problem.

When PCANode is set to use SVD and automatic dimensionality reduction
it may happen that after removing directions corresponding to
eigenvalues smaller than var_abs (1e-12 default), nothing is left.
This happens for example if the data is a matrix of (almost) zeros.
The error looks like this:
Traceback (most recent call last):
[...]
File ".../mdp/nodes/pca_nodes.py", line 220, in _stop_training
    d = d[ d / d.max() > self.var_rel ]
ValueError: zero-size array to ufunc.reduce without identity
FIX: add useful exception in case of no eigenvalues left.

Check for the condition explained in b0810d72ce11925e1db6204c3a20bdfc77741a82
and raise a nicely formatted exception:

Traceback:
[...]
File ".../mdp/nodes/pca_nodes.py", line 223, in _stop_training
    ' var_abs=%e!'%self.var_abs)
NodeException: No eigenvalues larger than var_abs=1.000000e-15!
FIX: fix failing test for no eigenvalues left problem

Check that PCANode now raises the right exception.