ENH: checklist.py now enforces a minimal API in tests

~~**Not ready for merge**~~
**Tests are supposed to fail**

As we near an Alpha release, we should probably pay more attention to API details. This pull request adds the ability for `checklist.py` to parse the package, build a list of imports, and identify the shortest API target. It then ensures that all test code imports from the shortest possible API target. This means that our tests will fail if we change the API vs failing if we change our internal structure. Tests will also fail if the public API doesn't work for whatever reason.

To see what this looks like, check the failure in the Travis build. We probably don't want to merge this until we have finished re factoring things. Also this code is using python's own parsing library (it's complicated!), so we may not want to use this at all for that reason.
I think this name is a bit confusing, the way I see the class it doesn't actually validate that there are no API regressions (which I think is a much more complex problem), but instead that the shortest available path to import an object is used. What do you think?