[WIP] Data independent CV and model_selection module

Hi guys,

I'm working on #1848 and #2904, and would like to get some feedback on my changes.

Here's a writeup about the issues/changes: http://pignacio.github.io/jwoc-blog/stories/stuff-about-scikit-learn18482904.html

Any thoughts / suggestions / improvements / rants on the changes are greatly appreciated
Can we split this into separate lines, rather than continuation? i.e.

from .model_selection.partition import LeaveOneOut, LeavePOut, KFold
from .model_selection.partition import StratifiedKFold, LeaveOneLabelOut

etc.