WIP/API/ENH: revamp ICA

New API for ICA, shorter examples, new diagnostic plots, utils for generating epochs on artifact events, outlier detection ....
I know it's gonna  be difficult to review but from time to time PRS like this one are necessary.
Please don't review. I'm in the middle of debugging.

cc @jdsitt @fraimondo @agramfort  
indeed. same for `source_idx` --- good catch