Setup script

@chriddyp, @etpinard, what do you think about throwing warnings here like this?

basically, if you (1) don't have a core package installed (2) if the core package is older than ours and (3) if you have an outdated optional package (think matplotlib)
ah ok, so we only issue warnings if they *have* the optional package AND it's out of date