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.
That is true, however by ensuring the shortest path is used, we can use our unit tests to prevent API regression. So it enforces tests to enforce the API. I am not attached to this name in any way though, it was just the best thing I could think of.