to do
/////

* Implement PEP 302 protocol for loaders (should just be a matter of testing).

    + Source/bytecode.

* Public API left to expose (w/ docs!)

    + abc

        - Finder

            * find_module

        - Loader

            * load_module

        - ResourceLoader(Loader)

            * get_data

        - InspectLoader(Loader)

            * is_package
            * get_code
            * get_source

        - (?) SourceLoader(ResourceLoader)

            * source_path
            * bytecode_path
            * write_bytecode (not abstract)

    + util

        - set___package__ decorator

    + machinery

        - Extensions importers

            * ExtensionFinder
            * (?) Loader

        - Source/bytecode importers

            * SourceFinder
            * (?) Loader

    + test (Really want to worry about compatibility with future versions?)

        - abc

            * FinderTests [doc]
            * LoaderTests [doc]

* Remove ``import *`` from importlib.__init__.

* Remove __all__ from importlib._bootstrap.

* Add leading underscores to all objects in importlib._bootstrap that are not
  publicly exposed.

* Reorder importlib/_bootstrap.py so definitions are not in inverted order.

* Make sure that there is documentation *somewhere* fully explaining the
semantics of import that can be referenced from the package's documentation
(even if it is in the package documentation itself, although it might be best
in the language specification).

* Write benchmark suite.

* OPTIMIZE!

  + Fast path absolute name.
  + Fast path pulling from sys.modules.

* Bootstrap importlib as implementation of builtins.__import__

* Replace standard library modules.

  + imp
  + py_compile
  + compileall
