ENH: improve sklaern version handling for ICA

This adds sklearn version checking, and conditional tests-skipping + a new exception to ICA.
This should finally fix the current buildbot issues.
Additional pep8 fixes + ICA cleanup.