ENH/WIP: New time gen class

Closes #1302. 

@kingjr sorry rebasing was a mess, I had to squash your commits to get started within a finite amount of time. Your commits are supposed to be logged and counted anyways

Here's a list of things I addressed.

1. Enforce sklaern API that distinguishes between parametersa and attributes
2. make score and predict return the corresponding values
3. fix unfarable expression which create references not copies e.g ```[[]] * len(test_times``` creates a list of len(test_times) times the same list object.
4. fix the default y and simplify the example. I figured out that sklearn apparently expects 0 and 1 or True and False for the binary case. Using scipy.stats.rankdata as a trick to achieve this.
5. isolated the changes related to the new class from the changes related to the previous attempt to modify the existing function.
6. rebased and fixed unit tests.
7. caught a corner case where predict == 'distance' will crash (binary casses).
8. addressed pep8 issues
9. added doc to better document for developers and users the attributes. e.g. the somewhat complex list of lists approach to scores and estimators (yes I know not easy to do otherwise).

Todo:

1. doc is not fully complete.
2. Check a few parts in the code with you @kingjr to check whetehr we can do bettr.
3. extend tests.
4. update whats new once we're don here.

Important:

Absolute feature add block. We're going to stabilize what's there and then we move on in *smaller* steps. For this @kingjr I only want to hear from you that the overall structure is expected to stay.

@agramfort if you're looking for a review job ...

1. Generally speaking, continuous metrics have more information than discrete ones.
2. When generalization across time or conditions, the discrete predictions can completely fail because all samples falls on one side of the hyperplan - even though they fall at different distances.
3. Decision function is much faster than (but not as good as) probability=True, is not bounded (which can be useful, e.g. for further stastistical testing using gaussian assumptions), and can keep the metrics.

Did you encounter issues with it?